使用 isEqualToNumber 方法比较两个 NSNumbers

Comparing two NSNumbers using isEqualToNumber method

当我使用 isEqualToNumber 比较两个 NSNumbers 时,如果两个数字都是 nil,则返回 false。为什么排序比较 [nil isEqual:nil] 总是 returns falsenil == nil returns true

这是标准行为。你将从 isEqueslToString: 等得到相同的结果。这样更好,因为你可以有例如 weak 对不相等对象的引用,这将在释放时变得相等。

您可以使用 number1.intValue == number2.intValue 这样的条件,在这种情况下,它会 return YES 用于 2 nil 个对象。但是,您还将获得 YES for nil.intValue == @0.intValue

[nil isEqual:nil] 比较对象,而 nil == nil 比较指针。

指向 nil 的指针始终等于指向 nil 的指针。另一方面,不存在的对象不等于任何东西。