Sobes.tech
Junior — Middle

iOS-də avtomatik yaddaş idarəetmə mexanizmi ARC-nin əsas prinsiplərini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

ARC (Avtomatik Referansların Sayılması) iOS-də yaddaş idarəetmə mexanizmidir və avtomatik olaraq obyektlərin həyat müddətini izləyir və idarə edir. ARC-nin əsas prinsipi obyektə olan referansların sayını hesablamaqdır.

Obyekt yaradıldıqda, ARC referans sayğacını 1 artırır. Obyekt yeni bir dəyişənə təyin olunduqda, sayğac artır, və referans silindikdə, azaldılır. Obyektin referans sayı sıfıra çatdıqda, obyekt avtomatik olaraq yaddaşdan azad edilir.

Nümunə:

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

var person1: Person? = Person(name: "Ivan") // sayğac = 1
var person2 = person1 // sayğac = 2
person1 = nil // sayğac = 1
person2 = nil // sayğac = 0, obyekt azad edilir

Yaddaşın sərbəst buraxılmasını əngəlləyən döngüvi referanslar (retain cycles) qarşısını almaq vacibdir, çünki onlar yaddaşın sərbəst buraxılmasını mane olur. Bunun üçün zəif (weak) və mülkiyyət olmayan (unowned) referanslar istifadə olunur.