如何检测何时需要保存NSPersistentStore?

时间:2011-10-03 22:29:11

标签: iphone ios core-data

我有一个iOS应用程序,我使用coreData来存储我的“文档”。它们共享一个共同的NSManagedObjectContext,我经常保存上下文。

我想跟踪各种“文档”的最后修改日期(每个文档都是一个单独的NSPersistentStore),并将日期存储在每个商店所拥有的特定唯一“根”对象上。

我可以尝试在修改文档时保持修改时间戳是最新的,但如果我能够找到在保存上下文时需要保存哪些持久性存储,它会更清晰,更健壮。

我找不到任何方法来检测持久存储是否需要保存。我可以查询NSManagedObjectContext以查看哪些托管对象需要保存,尽管我找不到一种简单的方法来查看对象所属的商店。

这似乎不是一件奇怪的事情,核心数据包含我正在寻找的所有信息,但我找不到一种简单的方法来访问这些数据。

有没有人知道一个简单的方法?

如果我找不到更简单的方法,我将简单地从上下文循环删除/修改/插入的对象,并为每个实体类型编写特殊代码以确定该对象所属的商店。

提前感谢您的帮助!

罗恩

1 个答案:

答案 0 :(得分:2)

[[managedObject objectID] persistentStore]是您正在寻找的持久性商店(如果尚未保存该对象,则可能为零)。

文档显示,如果您已将其分配到商店但尚未保存,则为零;我不确定这是否属实(我没有看到其他地方可能保存此信息)。如果您有权访问它,我会在3.x,4.x和5.0 beta上检查它的行为。