gpt4 book ai didi

objective-c - NSManagedObject 的唯一标识符

转载 作者:太空狗 更新时间:2023-10-30 03:25:51 26 4
gpt4 key购买 nike

我需要为我创建的 NSManagedObject 类型获取唯一标识符。它需要在对象创建后立即可用、永不更改且完全唯一。

这排除了 NSManagedObjectID,因为它可以在保存上下文时更改。我相信如果我的对象具有相同的属性,-hash 方法可能是非唯一的。

我真的很想避免在实体上创建一个无用的 uniqueIdentifier UUID 字段,因为这看起来既浪费又困惑。这里有公认的最佳实践吗?

最佳答案

尝试 NSManagedObjectIDURIRepresentation 属性。这是当前 NSManagedObject 的非常独特的 ID,但要小心直到 NSManagedObject 未保存它只给你一个临时 ID,不是永久性的,它们可能会有所不同。 (我之所以这么说是因为我不知道您想要使用唯一 ID 的目的和方式。)

更新 #1

不仅仅是一个虚构的唯一ID,这是每个个体NSManagedObject的唯一URL(就像每个文件都有一个唯一的URL ), 使用它们你可以在丢失它们的指针后再次找到原来的 NSManagedObject。我知道这很难理解,但这就是 NSManagedObjectID 及其属性的意义所在。

(如果您不了解 CoreData 及其对象的工作原理,您不会对答案投反对票。请阅读更多文档,而不是毫无意义的投反对票。)

更新 #2

根据@NickLocking 的评论,我将扩展上面答案的粗体部分:

until saving the NSManagedObjectContext for the new and still unsaved NSManagedObject 类有一个临时的只有唯一 ID。第一次保存后,将获得永久唯一ID。

关于objective-c - NSManagedObject 的唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11554138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com