如果A == B,那是否意味着[A isEqual:B]是真的?

时间:2012-11-26 13:25:36

标签: objective-c

我刚刚发现了一个错误。跟踪错误,我发现当A(因此B)为零时违反了这个。

我只是想确保我在这里没有遗漏任何东西。

问题的答案是真的还是我只是发现例外?

2 个答案:

答案 0 :(得分:3)

发送到nil的消息的返回码始终为0,等于NO或false。因此,您观察到的行为是预期和正确的,即使它看起来可能看起来不太直观。不同的nil个对象并不完全相同,因为nil并没有真正的身份。

答案 1 :(得分:1)

在Objective-c中,当A为零时,您可以向nil对象发送消息,即[A isEqual:B]。但你不能指望一个nil对象返回一个结果!我还没有找到Apple ref,但我怀疑返回值是未定义的,还是设置为nil / false / 0本身。