首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >核心数据:对象ID更改

核心数据:对象ID更改
EN

Stack Overflow用户
提问于 2017-04-08 17:15:53
回答 1查看 242关注 0票数 0

我试图在一个简单的核心数据实现中通过对象ID来获取对象。使用此api

代码语言:javascript
运行
复制
let targetObj = CoreDataManager.sharedInstance.privateQueueContext.object(with: self.objectID) as! MyObj

但似乎对象标识发生了变化。这是控制台日志

代码语言:javascript
运行
复制
(lldb) po self.objectID
0xd000000000280000 <x-coredata://551DDB76-537D-41FA-B923-F772E5EE5D29/MyObj/p10>

(lldb) po CoreDataManager.sharedInstance.privateQueueContext.object(with: self.objectID).objectID
0xd000000000280006 <x-coredata://551DDB76-537D-41FA-B923-F772E5EE5D29/MyObj/p10>

如果我做错了什么请告诉我。实际上,是将这些objectIds保存在一个队列中的书,并且需要根据这些objectIds来对对象进行去队列。

谢谢安吉

EN

回答 1

Stack Overflow用户

发布于 2017-04-08 21:41:00

打印每个对象ID时看到的唯一区别是存储对象ID的内存中的地址。

因此,如果将这两个对象与==进行比较,它们将是不同的,因为这是在测试引用相等性。

如果将这两个对象与isEqual:进行比较,它将返回true,因为isEqual:正在测试它们各自表示的值是否相等。

您不能通过引用可靠地比较对象,需要使用isEqual:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43298081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档