Junior — Middle
Avtomatik xotira boshqaruvchisida siklik havolalar yuzaga keladimi, bu esa axlatni yig'ib olishga to'sqinlik qiladimi?
sobes.tech AI
AIdan javob
Ha, iOS'da otomatik hafıza yönetimi (ARC) kullanılırken, döngüsel referanslar (retain cycles) oluşabilir. Bu, iki veya daha fazla nesnenin birbirini güçlü referanslar ile tutması durumudur; bu durumda referans sayacı sıfıra ulaşmaz ve nesneler serbest bırakılmaz.
Bunları önlemek için, zayıf (weak) veya sahip olmayan (unowned) referanslar kullanılır. Örneğin, delegeler genellikle döngüleri önlemek için weak olarak ilan edilir.
Örnek:
class Person {
var apartment: Apartment?
}
class Apartment {
weak var tenant: Person? // döngüyü önleyen zayıf referans
}
let john = Person()
let unit4A = Apartment()
john.apartment = unit4A
unit4A.tenant = john
Bu örnekte, tenant zayıf bir referanstır, bu nedenle döngü oluşmaz ve nesneler doğru şekilde çöp toplayıcı tarafından serbest bırakılır.