WWDC 2014 oturum 403 Orta Swift ve konuşma metninde aşağıdaki slayt vardı
Konuşmacı bu durumda, eğer [unowned self]
orada kullanmazsak , bir bellek sızıntısı olacağını söyledi. Bu her zaman [unowned self]
iç kapakta kullanmamız gerektiği anlamına mı geliyor ?
On Swift Hava app ViewController.swift hattı 64 , ben kullanmıyorum [unowned self]
. Ama ve @IBOutlet
gibi bazılarını kullanarak kullanıcı arayüzünü güncelliyoruz . TAMAM olabilir çünkü tanımladığım tüm s . Ancak güvenlik için daima kullanmalı mıyız ?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
}
}
}
onChange
olduğundan bir [weak self]
kapatma olmalıdır , bu nedenle başka bir nesne, TempNotifier nesnesini etrafında tutarak (süresiz olarak kullanan nesne , kendi zayıf referansı ile gittiğini onChange
görene kadar kapatmayı bırakmadı )TempNotifier
TempNotifier
. Eğer var onChange …
vardı private var onChange …
o zaman [unowned self]
doğru olacaktır. Buna rağmen% 100 emin değilim; biri beni düzeltirse lütfen yanılıyorsam.
[]
? Açıklamayı Apple belgelerinde bulamıyorum.
{}
boş kapatma (kapatma örneği) varsayılan olarak (hiçbir şey yapmaz), (Int) -> Void
kapatma tanımıdır.