最佳答案
在WWDC 2014年会议403 中间迅速和成绩单中,有以下幻灯片
演讲者说,在这种情况下,如果我们不使用[unowned self]
,它将是一个内存泄漏。这是否意味着我们应该总是在闭包中使用[unowned self]
?
在Swift Weather应用的ViewController.swift的第64行上,我不使用[unowned self]
。但是我通过使用一些__abc1来更新UI,比如self.temperature
和self.loadingIndicator
。这可能没问题,因为我定义的所有__abc1都是weak
。但是为了安全起见,我们应该总是使用[unowned self]
吗?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}