Cocoa 如何在应用程序之间更新共享核心数据存储? 我的用例:

Cocoa 如何在应用程序之间更新共享核心数据存储? 我的用例:,cocoa,core-data,Cocoa,Core Data,对于偶尔运行一次的自动导出,我构建了一个HelperApp,而在MainApp中配置了still 我的设置: MainApp(写入数据) HelperApp(主要读取数据,但也写入很少的字段) 这两个应用共享一个核心数据持久存储,使用组container中相同的myapp.storedata文件 两个应用程序都观察到NSManagedObjectContextDidSaveNotification在上下文保存时通过NSDistributedNotificationCenter相互告知 这是可

对于偶尔运行一次的自动导出,我构建了一个HelperApp,而在MainApp中配置了still

我的设置:
  • MainApp(写入数据)
  • HelperApp(主要读取数据,但也写入很少的字段)

  • 这两个应用共享一个核心数据持久存储,使用组container中相同的myapp.storedata文件

  • 两个应用程序都观察到
    NSManagedObjectContextDidSaveNotification
    在上下文保存时通过
    NSDistributedNotificationCenter
    相互告知
    • 这是可行的,因此另一个应用程序知道何时应该更新其持久存储/托管对象上下文
  • 这两个应用程序都是沙盒
我的问题是: 我无法通过NSDistributedNotificationCenter将
NSManagedObjectContextDidSaveNotification
传递给其他应用程序

我怎么能这样呢

  • 导致任何应用程序的核心数据堆栈重新加载其数据

  • 合并来自其他应用程序的更改以便更新MOC

你找到答案了吗?我也在想同样的事情。mergeChangesFromContextDidSaveNotification:在没有通知对象的情况下是不可能的,并且不清楚如何从磁盘更新。这表明这是不可能的:嘿,谢谢你的评论。Unf。我没有找到解决办法。因为这是一个小项目,我只是没有追求它了。但找到一个解决方案将使我能够继续,甚至可能完成我的小应用程序的开发。所以我对我们在这方面的看法很感兴趣。我可能会考虑使用NSCORE而不是核心数据。