I tried something along the lines of:
if(myString != nil && myString.length) { ... }
And got:
-[NSNull length]: unrecognize
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'd compare the length to 0. That seems to be more clear.