title: Why do devices previous to iPhone 5S and iPad Air don't crash when casting a null variable?
body: <p>I abstracted the code here, since the original is massive:</p>
  
  <pre><code>-(void)something {
      // At this point, self.parent is NOT null
      [self boom];
      SomeClass *variable = (SomeClass*)self.parent;
      [variable someMethod];
  }
  
  -(void)boom {
      self.parent = nil;
  }
  </code></pre>
  
  <p>Surely, if you call <code>something</code>, this will crash, because <code>self.parent</code> is nullified, and then you attempt to cast it and call a method on it.</p>
  
  <p>So the thing is, this never crashed to me. I mean, for several months, this piece of code has been intact, and my app never crashed.</p>
  
  <p>Now it is crashing for two specific configurations</p>
  
  <ul>
  <li>iPhone 5S, latest iOS</li>
  <li>iPad Air, latest iOS</li>
  </ul>
  
  <p>All the other previous devices, with the latest iOS too, this didn't crash.</p>
  
  <p>Although the above snippet is not my code, I'm pretty sure it reflects what is happening.</p>
  
  <p>How is this possible? Am I missing something here?</p>