我知道当我们直接在代码中调用时,我们可以在Dispatchmines中使用强self ,例如:
func foo() {
DispatchQueue.global().async {
print(self.someProperty)
}
}
但是,如果我将我的自定义队列保留在类中,那么它会怎样呢?我应该使用weak self
还是它的工作原理相同,无需担心泄漏?
class MyClass {
let queue = DispatchQueue(
label: "MyQueue",
qos: .userInitiated
)
func foo() {
queue.async { [weak self] in
guard let self else { return }
print(self.someProperty)
}
}
}
在这种情况下,我的自定义队列存储在类变量中,可能应该使用weak self
.还是不go ?