iOS8 扩展:将 CoreData 与包含的应用程序同步
Posted
技术标签:
【中文标题】iOS8 扩展:将 CoreData 与包含的应用程序同步【英文标题】:iOS8 Extension : synchronize CoreData with containing app 【发布时间】:2014-08-13 08:47:43 【问题描述】:我正在开发一个小部件,它将显示一些信息,这些信息也存在于我的应用程序中。 我在应用扩展和包含应用之间共享了我的 CoreData 存储,没有问题。
现在,当从我的 Widget 将数据保存到持久存储时,我需要在我的应用程序中捕获事件以合并 NSManagedObjectContext(反之亦然) 如果我不这样做,则在 Widget 保存后尝试从包含应用程序中保存上下文会使应用程序崩溃。
注册到 NSManagedObjectContextDidSaveNotification 在这里没有帮助。
有人能告诉我怎么做吗?
【问题讨论】:
有关于这个问题的消息吗?我一直有完全相同的问题,似乎无法找到解决方案... 还没有,我一直在寻找无济于事... 【参考方案1】:我认为最好的方法是在 ViewDidLoad 上重置应用扩展的上下文,然后重新获取所有 NSManagedObject。
为了更新应用程序,我重置了 didBecomeActive 上的上下文,但仅在应用程序扩展通知应用程序需要更新时。这可以通过将布尔值传递给您的应用程序组 NSUserDefaults 来完成。通过这样做,您不会在不需要时重置上下文,因此您不会在每次打开应用时都失去性能。
【讨论】:
以上是关于iOS8 扩展:将 CoreData 与包含的应用程序同步的主要内容,如果未能解决你的问题,请参考以下文章
MagicalRecord (CoreData) + Today Extension (iOS8)... 他们会玩吗?