我使用swift 3& xcode8
我的代码在
下面[A]
DispatchQueue(label: "background").async {
autoreleasepool {
*DB UPDATE CODE HERE
}
OperationQueue.main.addOperation {
self.uiUpdate() <-- data query & UI update code
self.ResultTable.reloadData() <-- tableview reload
}
}
[B]
DispatchQueue(label: "background").async {
autoreleasepool {
*DB UPDATE CODE HERE
}
DispatchQueue.main.async {
self.uiUpdate() <-- [C] some data query & UI update code
self.ResultTable.reloadData() <-- [D]tableview reload
}
}
[A]代码非常有用。
但是[B]是错误的
如果我执行[B] 5次
C运行良好但有时UI未更新
我听说OperationQueue.main.addOperation和DispatchQueue.main.async
相同但工作方式不同
我不明白,差异A和B