kwc*_*cto 18 objective-c short-circuiting
我尝试过以下方面:
if(myString != nil && myString.length) { ... }
Run Code Online (Sandbox Code Playgroud)
得到了:
- [NSNull length]:发送到实例的无法识别的选择器
在第一个条件失败后,Objective-C不会短路吗?
Geo*_*lly 30
Objective-C确实支持短路评估,就像C一样.
似乎在你的例子中myString
是NSNull
和否nil
,因此myString != nil
是真的.
NSNull是一个单例,用于表示nil
仅允许对象的位置,例如在NSArray中.
顺便说一句,通常,人们会写if (!myString && myString.length == 0)
.比较nil
相当难看.另外,我将长度与0进行比较.这似乎更清楚.
归档时间: |
|
查看次数: |
5923 次 |
最近记录: |