Ios 多重';持久存储协调员';打开相同的';商店';don';我看不到彼此的变化
TL;DR:我有两个“持久存储协调员”,他们打开同一个“存储文件”。当一个协调器写入更改时,另一个不知道Ios 多重';持久存储协调员';打开相同的';商店';don';我看不到彼此的变化,ios,macos,core-data,Ios,Macos,Core Data,TL;DR:我有两个“持久存储协调员”,他们打开同一个“存储文件”。当一个协调器写入更改时,另一个不知道 在我的基于文档的应用程序中,我需要有多个数据库: 1。文档数据库(每个文档一个) 2。共享数据库(所有文档均可看到) 下面是我如何设置堆栈的: 拥有这样的设置非常好,因为: 文档无法访问其他存储 每个文档都可以访问共享数据库文件 但这里有个问题。假设我打开了两个窗口: 文档窗口 没有文档支持的应用程序窗口。它只是使用NSFetchedResultsController显示“共享数据库”中
在我的基于文档的应用程序中,我需要有多个数据库: 1。文档数据库(每个文档一个) 2。共享数据库(所有文档均可看到) 下面是我如何设置堆栈的: 拥有这样的设置非常好,因为:
NSFetchedResultsController
显示“共享数据库”中的内容编辑 我提出了一种解决方案,可以简单地观察文档上下文执行的“did save”通知并合并更改。 这是正确的方法吗
NotificationCenter.default.addObserver(forName: .NSManagedObjectContextDidSave,
object: nil,
queue: .main) { (notification) in
guard let context = notification.object as? NSManagedObjectContext else { return }
guard context.persistentStoreCoordinator != nil else { return }
sharedAppContainer.viewContext.mergeChanges(fromContextDidSave: notification)
}