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