我刚刚发现了一个错误。跟踪错误,我发现当A(因此B)为零时违反了这个。
我只是想确保我在这里没有遗漏任何东西。
问题的答案是真的还是我只是发现例外?
答案 0 :(得分:3)
发送到nil
的消息的返回码始终为0,等于NO
或false。因此,您观察到的行为是预期和正确的,即使它看起来可能看起来不太直观。不同的nil
个对象并不完全相同,因为nil
并没有真正的身份。
答案 1 :(得分:1)
在Objective-c中,当A为零时,您可以向nil对象发送消息,即[A isEqual:B]。但你不能指望一个nil对象返回一个结果!我还没有找到Apple ref,但我怀疑返回值是未定义的,还是设置为nil / false / 0本身。