如何(正确)为 NSManagedObject 实例创建唯一的对象 ID?

发布于 2024-11-03 18:11:05 字数 443 浏览 0 评论 0原文

我想设置自定义 NSManagedObject ID 以匹配 CouchDB 中相应对象的 ID。 CoreData 文档(位于 “使用托管对象” )说:

您有时可以从创建自己的唯一 ID (UUID) 属性中受益,该属性可以为新插入的对象定义和设置。这允许您使用谓词有效地定位特定对象(尽管在保存操作之前只能在其原始上下文中找到新对象)。

但 NSManagedObjectContext 文档说你“绝对不能覆盖”objectID

那么,如何正确设置自定义对象ID呢?

I want to set custom NSManagedObject IDs to match the IDs of their corresponding objects in my CouchDB. The CoreData documentation (in "Using Managed Objects") says:

You can sometimes benefit from creating your own unique ID (UUID) property which can be defined and set for newly inserted objects. This allows you to efficiently locate specific objects using predicates (though before a save operation new objects can be found only in their original context).

But the NSManagedObjectContext documentation says you "absolutely must not override" objectID.

So, how does one properly set a custom object ID?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玩心态 2024-11-10 18:11:05

阅读文档后,我认为建议您在对象上创建一个附加属性来存储您自己的 UUID(在本例中为 CouchDB 的 ID),而不是覆盖 objectID。然后,您可以使用谓词来搜索您自己创建并存储 CouchDB ID 的 UUID 属性。请注意,如果您在原始上下文之外进行搜索,则必须首先执行保存操作。

Reading through the documentation I think it is suggesting that you create an additional property on your object that stores your own UUID (the ID from CouchDB in this case) rather than overriding objectID. You can then use a predicate to search against your own UUID property you created and stored the CouchDB ID in. Note that you must perform a save operation first if you are searching outside of the original context.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文