Does Objective-C use short-circuit evaluation?
I tried something along the lines of: if(myString != nil && myString.length) { ... } And got: -[NSNull length]: unrecognized selector sent to instance Does Objective-C not short-circuit after the first condition fails? Objective-C does support short-circuit evaluation, just like C. It seems that in your example myString is NSNull and not nil , therefore myString != nil is true. NSNull is a singleton and is used to represent nil where only objects are allowed, for example in an NSArray. Btw, normally, people write if (!myString && myString.length == 0) . Comparing to nil is quite ugly. Also, I