如何比较运算符' =='对于NSObject

时间:2014-03-28 12:08:39

标签: ios objective-c operators nsobject

如何比较运算符' ==' NSObject? 方法-isEqual:对我来说很好,但是当我使用-isEqual时,我需要检查对象是否存在。使用' =='我不需要检查这个,但我可以找到它的文档吗?

2 个答案:

答案 0 :(得分:1)

==运算符测试两个表达式是否是指向同一对象的相同指针。 Cocoa称这种关系为“相同”

要测试两个对象是否相等,您可以向其中发送一个isEqual:

答案 1 :(得分:1)

来自Apple文档:

  

返回一个布尔值,指示接收器和a   给定的对象是平等的。 (必需)此方法定义了它的含义   实例是平等的。例如,容器对象可能   如果相应的对象全部,则将两个容器定义为相等   对isEqual:request回应YES。参见NSData,NSDictionary,   NSArray和NSString类规范的使用示例   这种方法。如果两个对象相等,则它们必须具有相同的哈希值   值。如果您定义,最后一点尤为重要   isEqual:在子类中并打算放置该子类的实例   进入一个集合。确保您还在子类中定义哈希。

如果你喜欢这个

if([obj1 isEqual:obj2])

obj1,或obj2nil,您将获得NO。 (如果这是你的问题的意思)
- 现在

if(obj1 == obj2)

这是一个指针比较。 Pointers