Junior
Xotira oqishi nima va qanday yuzaga keladi?
sobes.tech AI
AIdan javob
Bir hafıza sızıntısı, bir programın nesneler için hafıza ayırdığı, ancak bunlar artık gerekmediğinde referansların silinmediği ve çöp toplayıcının bu hafıza alanını serbest bırakamadığı bir durumdur. iOS'ta, ARC (Otomatik Referans Sayımı) kullanıldığında, hafıza sızıntıları genellikle döngüsel referanslar nedeniyle ortaya çıkar; örneğin, iki nesne birbirine güçlü referanslar aracılığıyla referans verdiğinde ve hiçbiri serbest bırakılmadığında.
Swift'te döngüsel referans örneği:
class A {
var b: B?
}
class B {
var a: A?
}
let a = A()
let b = B()
a.b = b
b.a = a
// Her iki nesne birbirine referans veriyor, ARC otomatik olarak serbest bırakamaz
Sızıntıları önlemek için, zayıf (weak) veya sahip olmayan (unowned) referanslar kullanılır; bunlar referans sayacını artırmaz ve nesnelerin doğru şekilde serbest bırakılmasını sağlar.