我尝试了以下内容:
if(myString != nil && myString.length) { ... }
And got:
-[NSNull length]:发送到实例的无法识别的选择器
第一个条件失败后 Objective-C 不会短路吗?
Objective-C 确实支持短路评估,就像 C 一样。
看来在你的例子中myString
is NSNull
并不是nil
, 所以myString != nil
是真的。
NSNull http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSNull_Class/Reference/Reference.html是一个单例,用于表示nil
其中只允许对象,例如在 NSArray 中。
顺便说一句,通常人们会写if (!myString && myString.length == 0)
。相比于nil
是相当难看。另外,我会将长度与 0 进行比较。这似乎更清楚。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)