加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSManagedObject的唯一标识符

发布时间:2020-12-16 03:42:58 所属栏目:百科 来源:网络整理
导读:我需要获得一个我创建的NSManagedObject类型的唯一标识符.一旦对象创建完成,它就需要可用,不要更改,并且完全唯一. 这排除了NSManagedObjectID,因为在保存上下文时可能会发生这种变化.我相信如果我的对象具有相同的属性,-hash方法可能不是唯一的. 我真的想避
我需要获得一个我创建的NSManagedObject类型的唯一标识符.一旦对象创建完成,它就需要可用,不要更改,并且完全唯一.

这排除了NSManagedObjectID,因为在保存上下文时可能会发生这种变化.我相信如果我的对象具有相同的属性,-hash方法可能不是唯一的.

我真的想避免在实体上创建一个其他无用的uniqueIdentifier UUID字段,因为这似乎是浪费和凌乱的.这里有接受的最佳做法吗?

解决方法

尝试NSManagedObjectID的URIRepresentation属性.这是当前NSManagerObject的非常唯一的ID,但要小心,直到NSManagedObject不保存,它只提供一个临时ID,而不是一个永久的,并且它们可能不同. (我只是说,因为我不知道什么以及如何使用唯一的ID.)

更新#1

这不是一个虚构的唯一ID,这是每个单独的NSManagedObject(如每个文件都有一个唯一的URL)的纯唯一的URL,使用它们,您可以在丢失指针后再次找到原始的NSManagedObject.我知道这很难理解,但这是NSManagedObjectID及其属性的要点.

(如果您不了解CoreData及其对象的工作原理,您不能低估答案,请阅读更多文档,而不是无意义的下拉列表.)

更新#2

根据@NickLocking的评论,我将扩大我上面的答案的大胆部分:

直到保存NSManagedObjectContext为新的,仍然未保存的NSManagedObject类仅具有临时唯一ID.他们将在第一次保存后获得永久唯一的ID.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读