iOS 8扩展:将核心数据与包含应用程序同步

时间:2014-08-13 08:47:43

标签: core-data ios8

我正在开发一个Widget,它将显示我的应用程序中也存在的一些信息。 我在应用扩展程序和包含应用程序之间共享我的CoreData存储而没有问题。

现在,当从我的Widget将数据保存到持久性存储时,我需要在我的应用程序中捕获该事件以合并NSManagedObjectContext(反之亦然) 如果不这样做,在Widget保存后尝试从包含应用程序保存上下文会导致应用程序崩溃。

注册到NSManagedObjectContextDidSaveNotification在这里没有帮助。

有人可以告诉我如何做到这一点?

1 个答案:

答案 0 :(得分:3)

有了这方面的工作,我认为最好的方法是在ViewDidLoad上重置app扩展上的上下文,然后重新获取所有NSManagedObject。

要更新应用程序,我会重置didBecomeActive上下文,但仅在应用程序扩展程序告知应用程序需要更新时。这可以通过将bool传递到您的应用程序组NSUserDefaults来完成。通过这样做,您可以在不需要时重置上下文,因此每次打开应用程序时都不会失去性能。