- [NSObject isEqual:]和 - [NSNumber isEqualToNumber:]:有什么区别?

efp*_*ies 7 objective-c

两种方法都返回相同的结果 当然,-[NSObject isEqual:]不比较对象的指针,它以某种方式检查内部字段或其他什么.那么准确-[NSNumber isEqualToNumber:]地比较两个NSNumbers有什么意义呢?

Ter*_*cox 8

来自文档:

如果两个NSNumber对象具有相同的id值,或者它们具有等效值(由compare:方法确定),则它们被视为相等.这种方法比比较更有效:如果你知道这两个对象是数字.

所以它处理id等于和数字比较.

  • @TerryWilcox你是对的.参见[NSNumber.m]的第416行(https://code.google.com/p/cocotron/source/browse/Foundation/NSNumber/NSNumber.m). (5认同)