Is it true that every non-nil object evaluates to true in objective-c? That is, is this:
if (thing) NSLog(@"yes");
identical to this:
if (thing != nil) NSLog(@"yes");
Empirically it seems to be true, even if thing = @0, but I can’t find documentation that actually says this.
The if checks for 0 (false) or any other number (true). Since your “thing” is basically an address (and therefore a valid number), it will evaluate to “true”.