【发布时间】:2021-08-17 01:13:21
【问题描述】:
我想知道像下面的例子那样只保存背景上下文是否足够,或者我还应该保存主要上下文以及原因。
extension NSManagedObjectContext {
private func saveOrRollback(context: NSManagedObjectContext) -> Bool {
do {
if context.hasChanges {
try context.save()
return true
}
} catch {
log(error, message: "Couldn't save. Rolling back.", tag: .coreData)
context.rollback()
return false
}
return false
}
func performChanges(block: @escaping () -> Void) {
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
privateContext.parent = self
privateContext.perform {
block()
_ = self.saveOrRollback(context: privateContext)
}
}
}
【问题讨论】: