iphone - 核心数据 : Save unique object ID

标签 iphone objective-c ios core-data nsmanagedobject

我看到有一种方法可以获取托管对象的唯一标识:

NSManagedObjectID *moID = [managedObject objectID];

但是,正如我所读,保存时会发生变化。

创建我自己的唯一 ID 并将其保存在每个对象中以确保它是唯一且不会更改的更好方法是什么?

最佳答案

您不能将 NSManagedObjectID 保存在 CoreData 实体中,并且其中没有可用作整数或字符串 ID 的属性。 因此,构建您自己的唯一标识符算法是一个可以接受的解决方案,如果您无法跟踪实体何时被保存,我在某些应用程序中这样做了。

例如,我以前遇到过类似的问题,当时我需要用实体的引用填充 UITableView 单元格,并在单击/触摸单元格后检索实体。

我通过使用 uri 表示找到了一个建议,但是但是我之前仍然需要保存上下文,但是我设法使用 NSFetchedResultsController 并找到了一个更可靠的解决方案而不是应用程序构建的 id .

[[myManagedObject objectID] URIRepresentation];

然后您可以稍后检索托管对象 ID 本身:

NSManagedObjectID* moid = [storeCoordinator managedObjectIDForURIRepresentation:[[myManagedObject objectID] URIRepresentation]];

通过 moid,我可以检索您的托管对象。

关于iphone - 核心数据 : Save unique object ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465492/

相关文章:

iphone - 如何以编程方式安装 iOS 应用程序?

ios - 自动分页 PFQueryTableViewController

ios - 在 View Controller 之上添加 SLComposeServiceViewController

iphone - 充电完成前的剩余时间,iOS

iphone - 带有自定义导航栏的 Mailcomposer

ios - 如何修复 Alamofire 库错误?

javascript - 如何使用 html 'a' 链接打开 safari 中的现有选项卡?

objective-c - 检测悬停时的鼠标坐标

ios - 为什么我们在iOS中使用出队可重用关键字

ios - InputView 在 UICollectionView 内的 TextFields 中不起作用