两种方法都返回相同的结果。当然,-[NSObject isEqual:]
不比较对象的指针,它以某种方式检查内部字段或其他什么。那么使用究竟-[NSNumber isEqualToNumber:]
来比较两个NSNumber
s 有什么意义呢?
问问题
8342 次
3 回答
9
从文档:
如果两个 NSNumber 对象具有相同的 id 值或它们具有相等的值(由 compare: 方法确定),则它们被视为相等。这种方法比比较更有效:如果你知道这两个对象是数字。
所以它处理 id equals 和 number 比较。
于 2012-12-09T00:30:33.730 回答
3
它们本质上是相同的,尽管 isEqual 必须对传入的对象的类进行类型检查。isEqualToNumber 在编译时进行类型检查,如果可能的话会更好。
于 2012-12-09T00:59:42.673 回答
-2
-[NSObject isEqual:]
检查两个对象是否具有指针地址和哈希值,同时-[NSNumber isEqualToNumber:]
检查值是否相同。
NSNumber
值相等的 s 具有相同的指针地址。
于 2012-12-09T00:30:07.763 回答