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 次 |
| 最近记录: |