Nic*_*ing 10 guid core-data objective-c
我需要为NSManagedObject我创建的类型获取唯一标识符.它必须在对象创建后立即可用,永不改变,并且完全独特.
这排除了NSManagedObjectID,因为这可以在保存上下文时发生变化.我相信-hash如果我的对象具有相同的属性,该方法可能是非唯一的.
我真的想避免在实体上创建一个无用的uniqueIdentifier UUID字段,因为这看起来很浪费和混乱.这里有最受欢迎的最佳做法吗?
hol*_*lex 14
尝试的URIRepresentation财产NSManagedObjectID.这是当前非常独特的ID,NSManagerObject但要小心,直到 NSManagedObject 没有保存它只给你一个临时ID,而不是永久ID,它们可能会有所不同.(我只是这么说,因为我不知道你想用什么以及如何使用这个唯一的ID.)
更新#1
这不是一个虚构的唯一ID,这是每个人的纯粹唯一URL NSManagedObject(就像每个文件都有一个唯一的URL),使用它们,你可以NSManagedObject在丢失指针后再次找到原始文件.我知道这很难理解,但这是NSManagedObjectID它及其属性的重点.
(如果你不明白CoreData它们和它们的物体是如何工作的,那么你就不会贬低答案.请阅读更多文档,而不是毫无意义的贬低.)
更新#2
根据@NickLocking的评论,我会扩展上面答案的大胆部分:
直到保存 NSManagedObjectContext 新的仍然未保存的 NSManagedObject 类只有一个临时的唯一ID.在第一次保存后,他们将获得永久唯一ID.