如何比较运算符' ==
' NSObject
?
方法-isEqual:
对我来说很好,但是当我使用-isEqual
时,我需要检查对象是否存在。使用' ==
'我不需要检查这个,但我可以找到它的文档吗?
答案 0 :(得分:1)
==运算符测试两个表达式是否是指向同一对象的相同指针。 Cocoa称这种关系为“相同”
要测试两个对象是否相等,您可以向其中发送一个isEqual:
答案 1 :(得分:1)
来自Apple文档:
返回一个布尔值,指示接收器和a 给定的对象是平等的。 (必需)此方法定义了它的含义 实例是平等的。例如,容器对象可能 如果相应的对象全部,则将两个容器定义为相等 对isEqual:request回应YES。参见NSData,NSDictionary, NSArray和NSString类规范的使用示例 这种方法。如果两个对象相等,则它们必须具有相同的哈希值 值。如果您定义,最后一点尤为重要 isEqual:在子类中并打算放置该子类的实例 进入一个集合。确保您还在子类中定义哈希。
如果你喜欢这个
if([obj1 isEqual:obj2])
和obj1
,或obj2
为nil
,您将获得NO
。 (如果这是你的问题的意思)
- 现在
if(obj1 == obj2)
这是一个指针比较。 Pointers