Sobes.tech
Junior — Middle

Swift-də tullantıların toplanması mexanizmini və yaddaşın necə idarə olunduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də bəzi digər dillərdə olduğu kimi klassik Çöp Toplayıcı (Garbage Collector) yoxdur. Əvəzinə, avtomatik referansların sayılması (ARC - Automatic Reference Counting) mexanizmi istifadə olunur.

ARC belə işləyir: yaddaşdakı hər obyektin referans sayğacı var, bu, obyektə yeni referans yaradıldıqda artır və referans silindikdə və ya nil olunduqda azaldılır. Bir obyektin referans sayğacı sıfıra çatdıqda, obyekt avtomatik olaraq yaddaşdan silinir.

Nümunə:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Иван")
var person2 = person1 // referans sayğacı artır
person1 = nil // sayğac azalır, amma obyekt hələ də yaşayır, çünki person2 ona istinad edir
person2 = nil // sayğac 0 olur və obyekt silinir

Beləliklə, Swift-də yaddaş idarəetməsi avtomatik həyata keçirilir, əl ilə çöp toplayıcı çağırmağa ehtiyac yoxdur, bu da performansı artırır və düzgün istifadə olunduqda yaddaş sızıntılarının qarşısını alır.