Sobes.tech
Junior — Middle

Bir nesneye zayıf referans hangi durumlarda kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta zayıf referans (weak reference), güçlü referans döngülerini (retain cycles) önlemek için kullanılır, bu da bellek sızıntılarına yol açabilir. Nesnenin referans sayacını artırmaz, bu nedenle nesne, zayıf referanslar olsa bile serbest bırakılabilir.

Zayıf referansların tipik kullanım durumları:

  • Delegeler: genellikle weak olarak ilan edilirler, böylece nesne ile delegesi arasında döngü önlenir.
  • Kapanışlar (closures): Bir kapanış self'i yakalarsa, döngüyü önlemek için [weak self] kullanılır.
  • Nesneler arasındaki bağlantılar, bir nesnenin diğerine sahip olduğu durumlar ve diğer nesnenin sahip olmadan referansa sahip olması gereken durumlar.

Delegatör ile örnek:

protocol SomeDelegate: AnyObject {
    func didUpdate()
}

class SomeClass {
    weak var delegate: SomeDelegate?
}

Bu şekilde, zayıf referans bellek yönetimine yardımcı olur ve sızıntıları önler.