我有一个iOS应用程序,我使用coreData来存储我的“文档”。它们共享一个共同的NSManagedObjectContext,我经常保存上下文。
我想跟踪各种“文档”的最后修改日期(每个文档都是一个单独的NSPersistentStore),并将日期存储在每个商店所拥有的特定唯一“根”对象上。
我可以尝试在修改文档时保持修改时间戳是最新的,但如果我能够找到在保存上下文时需要保存哪些持久性存储,它会更清晰,更健壮。
我找不到任何方法来检测持久存储是否需要保存。我可以查询NSManagedObjectContext以查看哪些托管对象需要保存,尽管我找不到一种简单的方法来查看对象所属的商店。
这似乎不是一件奇怪的事情,核心数据包含我正在寻找的所有信息,但我找不到一种简单的方法来访问这些数据。
有没有人知道一个简单的方法?
如果我找不到更简单的方法,我将简单地从上下文循环删除/修改/插入的对象,并为每个实体类型编写特殊代码以确定该对象所属的商店。
提前感谢您的帮助!
罗恩
答案 0 :(得分:2)
[[managedObject objectID] persistentStore]
是您正在寻找的持久性商店(如果尚未保存该对象,则可能为零)。
文档显示,如果您已将其分配到商店但尚未保存,则为零;我不确定这是否属实(我没有看到其他地方可能保存此信息)。如果您有权访问它,我会在3.x,4.x和5.0 beta上检查它的行为。