我有一个带有以下代码的 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 NSPercientContainer(name: "AppName")
但它没有完成执行。容器名称与xcdatamodelid
相同。我使用的部署目标为 10.0
和 Xcode 10.1
。如有任何帮助,我们将不胜感激。
最佳答案
我通过调用主队列中的 persisterContainer 使其工作。
DispatchQueue.main.async {
persistentContainer.performBackgroundTask { context in
// ..
}
关于ios - 应用程序卡在核心数据初始化。怎么修?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55315981/