Nic*_*ard 6 iphone core-data objective-c nsmanagedobject ios
我看到有一种获取托管对象的唯一ID的方法:
NSManagedObjectID *moID = [managedObject objectID];
Run Code Online (Sandbox Code Playgroud)
但是,正如我所读到的那样,它会在保存时发生变化.
有什么更好的方法来创建我自己的唯一ID并将其保存在每个对象中,确保它是唯一的并且不会改变?
Leo*_*rdo 16
您无法将NSManagedObjectID保存在CoreData实体中,并且其中没有可用作整数或字符串ID的属性.因此,构建自己的唯一标识符算法是一种可接受的解决方案,如果您无法在实体保存时跟踪,我会为某些应用程序执行此操作.
例如,我之前有一个类似的问题,当我需要使用对实体的引用填充UITableView单元格,并在单击/触摸单元格后检索实体.
我通过使用uri表示找到了一个建议,但是我之前仍然需要保存上下文,但我设法使用NSFetchedResultsController并找到了一个更加可靠的解决方案而不是应用程序构建的id.
[[myManagedObject objectID] URIRepresentation];
Run Code Online (Sandbox Code Playgroud)
然后,您可以稍后检索托管对象ID本身:
NSManagedObjectID* moid = [storeCoordinator managedObjectIDForURIRepresentation:[[myManagedObject objectID] URIRepresentation]];
Run Code Online (Sandbox Code Playgroud)
使用模型,我可以检索您的托管对象.
| 归档时间: |
|
| 查看次数: |
9535 次 |
| 最近记录: |