两种方法都返回相同的结果。当然,-[NSObject isEqual:]
不会比较对象的指针,它会以某种方式检查内部字段或其他内容。那么准确地使用-[NSNumber isEqualToNumber:]
来比较两个NSNumber
s?
答案 0 :(得分:8)
来自docs:
如果两个NSNumber对象具有相同的ID,则它们被视为相等 值或它们是否具有等价值(由...确定) 比较:方法)。 这种方法比比较更有效:如果你知道这两种方法 对象是数字。
因此它处理id equals和数字比较。
答案 1 :(得分:3)
它们本质上是相同的,尽管isEqual必须对传入的对象的类进行类型检查.isEqualToNumber在编译时进行类型检查,这在可能的情况下会更好。
答案 2 :(得分:-2)
-[NSObject isEqual:]
检查两个对象是否具有指针地址和散列,-[NSNumber isEqualToNumber:]
检查值是否相同。
NSNumber
具有相同的指针地址。