当调用deinit时,我希望退出"DispatchQueue.main.asyncAfter"。
subView.swift
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
self.doSomething()
}
func doSomething(){
if self.subView.flgA == false { //error because subView's deinit is already called
//...
}
}
当 ViewController 执行 _ = self.navigationController?.popViewController(animated: true)
时,会首先调用 ViewController 和 subView 的 deinit,几分钟后才会调用 doSomething()
。
我想在执行 popViewController 时停止 doSomething()
,我该如何做?