Junior — Middle
Zayıf bir referans olan 'weak let' ne zaman kullanılmalıdır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift'te weak let kullanımı, özellikle kapanışlar ve delegeler içinde güçlü referans döngülerini (retain cycle) önlemek için kullanılır. Bu, referans verilen nesnenin de-inişleştirilebileceği durumlarda ve onu bellekte tutmak istemediğinizde uygundur.
Örneğin, self'i yakalayan bir kapanışta, bellek sızıntısını önlemek için zayıf referans kullanılır:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
guard let self = self else { return }
self.doSomething()
}
}
func doSomething() {
print("Eylem")
}
}
Burada, weak kapanışta self'i tutmayı engeller, bu da ViewController'ın artık gerekmediğinde hafızadan serbest bırakılmasını sağlar.