是否可以将多个“持久性存储协调器”与一个“持久性存储文件”一起使用?如何?

时间:2018-09-07 21:40:49

标签: ios swift core-data background-task nspersistentstore

我最近看过这部影片:

Core Data Performance Optimization and Debugging

在此视频中,我看到了将MULTIPLE Persistent Store Coordinator与一个Persistent Store File结合使用的概念。

如果有帮助,请参见以下截图:

enter image description here

我调查了这个问题:

How to create two persistent stores in one persistent store coordinator

我尝试了上述问题中给出的解决方案(不将journal_mode用作DELETE)以及以下解决方案:

managedObjectModel = modelAtUrl
let persistentStoreCoordinator1 = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
let persistentStoreCoordinator2 = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
...
...
queue = DispatchQueue(label: "DataStoreControllerSerialQueue")

    queue.async() {

let options = [
        NSMigratePersistentStoresAutomaticallyOption: true,
        NSInferMappingModelAutomaticallyOption: true
    ]

        do {
            try persistentStoreCoordinator1.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeUrl as URL, options: options)
        } catch let error as NSError {
            print("Unable to initialize persistent store coordinator:", error)
            self.error = error
        } catch {
            fatalError()
        }

do {
            try persistentStoreCoordinator2.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storeUrl as URL, options: options)
        } catch let error as NSError {
            print("Unable to initialize persistent store coordinator:", error)
            self.error = error
        } catch {
            fatalError()
        }
    }


...

我遇到了各种各样的文件I / O错误(错误代码522),有时甚至是could not add the same store错误。

那我该怎么办?

有可能吗?假设NSPersistentStore具有以下属性NSPersistentStore -> persistentStoreCoordinator可返回关联的协调器(而不是协调器)。

P.S。我想解决这个问题没有特别困难。所以我不是在寻找替代的背景数据任务解决方案。我特别想知道这种实现方式是可行的(如果有可能的话?)

如果问题解释不正确或格式错误,请提前道歉。请让我知道是否需要更多说明。

预先感谢您的帮助。

0 个答案:

没有答案