iphone - 如何比较两个对象是否真的是同一个对象?

标签 iphone objective-c cocoa cocoa-touch uikit

我想比较变量 A 和变量 B 是否表示相同的对象。

我可以使用 == 运算符来实现吗?

或者这到底在看什么?我想我需要检查变量指向的对象的内存地址,对吧?

最佳答案

== 运算符测试两个表达式是否是指向同一对象的相同指针。 Cocoa 称这种关系为“相同”(例如,参见 NSArray 的 indexOfObjectIdenticalTo:)。

要测试两个对象是否相等,您可以向其中一个发送 isEqual: 消息(或更具体的消息,例如 isEqualToString:,如果它响应到一个),传递另一个对象。如果你真的只有一个对象(显然等于它本身)或者你有两个相等的对象,这将返回 YES。在后一种情况下,== 将评估为 NO

关于iphone - 如何比较两个对象是否真的是同一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319247/

相关文章:

objective-c - 带有数字格式化程序的 NSTextField 不接受仅填充字符

multithreading - 使用 applescriptobjc 实现 GDC

iphone - MPMoviePlayerController 未播放视频

iphone - 使用 Objective C 从给定的 RSS 描述中查找图像 url

objective-c - 如何使用 Cocoa 压缩 PNG 图像?

ios - 如何从 CLLocation 变量中提取经度和纬度?

ios - 如何在 iOS8 中获取 Mp3 文件的艺术作品

iphone - 在发布版本中,Boost.Thread 线程未在 iPhone/iPad 上启动

javascript - Safari IOS - 输入不会失去对外部点击的关注(模糊不触发)

ios - 分配给可选时意外发现 nil