用UI更新後臺線程中的數據很困難。我讀噸的文檔,但仍然失去了一些東西......swift3 - 用後臺數據更新ui
func getData(){
DispatchQueue.global(qos: .background).async {
let token = GetTokenOperation()
token.success = { item in
print("Success")
}
token.failure = {error in
print(error.localizedDescription)
}
NetworkQueue.shared.addOperation(op: token)
DispatchQueue.main.async {
// qos' default value is ´DispatchQoS.QoSClass.default`
self.updateUI()
}
}
}
self.updateUI()「成功」之前執行打印。當我把self.updateUI()放在關閉token.success裏面時,確實崩潰了。
據我所知,Apple不允許從後臺線程更新UI。 – pedrouan
是的,這就是爲什麼我問如何正確地做到這一點。 – BobC
好吧,至少這是Swift3中的一個挑戰。 – pedrouan