我有一个带有以下代码的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
。任何帮助表示赞赏。
答案 0 :(得分:0)
我通过在主队列中调用persistentContainer使其工作。
DispatchQueue.main.async {
persistentContainer.performBackgroundTask { context in
// ..
}