【发布时间】:2021-01-10 19:20:33
【问题描述】:
我需要让我的应用长时间保留数据。当我开始阅读有关该主题的文章时,我遇到了 3 种不同的方法,并意识到我没有看到任何差异。请解释以下 fetch 方法的优缺点:
一)
container.performBackgroundTask { context in
self.data = try! context.fetch(request)
DispatchQueue.main.async {
self.updateUI()
}
}
B)
let context = container.newBackgroundContext()
context.perform {
self.data = try! context.fetch(request)
DispatchQueue.main.async {
self.updateUI()
}
}
C)
let context = container.newBackgroundContext()
let asyncFetchRequest = NSAsynchronousFetchRequest(fetchRequest: request) { result in
self.data = result.finalResult!.first!.data!
DispatchQueue.main.async {
self.updateUI()
}
}
try! context.execute(asyncFetchRequest)
【问题讨论】:
标签: swift multithreading core-data concurrency background-thread