我们所有人都可能使用了以下模式。这可能没什么大不了,我只是很好奇,当self
不再存在时,我仍然应该调用完成处理程序吗?
var uid: String
func asyncTask(completion: @escaping(Result)->()) {
anotherAsyncTask() { [weak self] (result) in
guard let uid = self?.uid else {
completion(.error) // Should I call this???
return
}
// consume result
}
}
答案 0 :(得分:1)
由于self
已取消初始化,因此调用没有意义
completion(.error) // Should I call this???
这里return
就足够了结果