0

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

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

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

4

2 回答 2

3

发送到的消息的返回码nil将始终为 0,这等于NO或为假。因此,您观察到的行为是预期的并且是正确的,即使它可能看起来并不完全直观。不同nil的对象并不完全相等,因为nil实际上并没有同一性。

于 2012-11-26T13:31:09.007 回答
1

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

于 2012-11-26T13:31:22.750 回答