В сеансе WWDC 2014 403 Промежуточный Swift и расшифровка, был следующий слайд
В этом случае говорящий сказал, что если мы не будем использовать [unowned self]
, это будет утечка памяти. Означает ли это, что мы всегда должны использовать [unowned self]
внутри закрытия?
В строка 64 ViewController.swift приложения Swift Weather, я не использую [unowned self]
. Но я обновляю пользовательский интерфейс, используя некоторые @IBOutlet
, такие как self.temperature
и self.loadingIndicator
. Это может быть ОК, потому что все @IBOutlet
я определены weak
. Но для безопасности мы всегда должны использовать [unowned self]
?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}