应用程式停留在核心资料初始化阶段。怎么修?

时间:2019-03-23 16:38:02

标签: ios swift core-data

我有一个带有以下代码的AppService.swift

lazy var persistentContainer: NSPersistentContainer = {
    let container = NSPersistentContainer(name: "AppName")
    container.loadPersistentStores(completionHandler: { storeDescription, error in
        if let error = error as NSError? {
            self.log.error("Unresolved error \(error), \(error.userInfo)")
        }
    })
    return container
}()

func saveChannel(_ channel: Channel) {
    persistentContainer.performBackgroundTask { context in
        let _channel = JSChannel(context: context)
        _channel.desc = channel.desc
        if let ret = try? context.save() {
            self.log.debug("ret: \(ret)")
        }
    }
}

我调用saveChannel方法,该应用程序冻结。我添加了断点,并在调试器中输入了p NSPersistentContainer(name: "AppName"),但它无法完成执行。容器名称与xcdatamodelid相同。我将部署目标用作10.0和Xcode 10.1。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我通过在主队列中调用persistentContainer使其工作。

DispatchQueue.main.async {
    persistentContainer.performBackgroundTask { context in
    // ..
}