当您使用例如警告时,是否有警告标志if
语句中的对象而不是布尔表达式?
我用谷歌搜索但找不到任何东西。这有助于防止这样的错误,尤其是在使用编辑器生成的Core Data类时:
NSNumber *n = @(YES)
if (n) { // should be n.boolValue instead of n
...
}
我在Xcode中找到了一个“隐式布尔转换”选项,但这似乎不是它(我仔细检查过)。
答案 0 :(得分:0)
不,这没有短暂的行为,也不可能。
一个。
if
来自经典C.在经典C中,没有布尔类型。 (他们在99中扩展了C,但没有触及if
。)基本上所有东西!= 0都是真的,一切== 0都是假的。
乙
n
不是对象。这是一个对象参考。你需要像你必须检查的表达式,对象引用是否指向nil
。根据您的建议,“无对象”和“包含NO的对象”之间没有区别。