【发布时间】:2018-01-11 19:01:37
【问题描述】:
我正在处理一些异步函数并尝试更新视图。简而言之,我有一个带有异步函数的函数 1,它将返回一个要传递给函数 2 的字符串。我正在主线程上更新这两个函数中的视图。一切正常,但我需要了解这是否正确。
class A {
var varA = ""
var varB = ""
func f1 (_ completion: @escaping (String) -> void ){
some asynchronous call ... { in
...
DispatchQueue.main.async {
self.varA = "something"
sef.labelA.text = self.varA
completion(self.varA)
}
}
}
func f2 (_ string: String){
another asynchronous call ... { in
...
DispatchQueue.main.async {
self.varB = string
sef.labelB.text = self.varB
}
}
}
// funcation call
f1(completion: f2)
}
三个问题,1)在等待异步回调的情况下运行依赖函数的正确方法是什么?
2) DispatchQueue.main.async 是否需要更新视图?
3) 可以在另一个异步回调中调用 async func 吗?如果您在某些转义函数中更新视图,在某些情况下是否有机会 self 为零?
【问题讨论】:
标签: asynchronous swift3 callback closures dispatch