我经常找到与下面代码类似的代码段,其中NSPersistentContainer
在闭包中初始化并分配给变量。
但是我不认为这段代码是最优的,因为函数loadPersistentStores
的完成处理程序不会与其余代码同步执行。
这意味着在下一行代码中创建容器后,storeDescription
无法正常使用。正确?如果是这样,那可能是一个优雅的解决方案?
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Test")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
答案 0 :(得分:0)