Sobes.tech
Junior — Middle

ARC-də avtomatik yaddaş idarəetmə mexanizmini və istifadə olunmayan obyektləri necə azad etdiyini 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ərə olan istinadların sayını izləyir və artıq lazım olmadıqda onları sərbəst buraxır.

İş prinsipi:

  • Hər obyektin bir istinad sayğacı (retention count) var.
  • Obyektə istinad yaradıldıqda, sayğac artır.
  • İstinad silindikdə, sayğac azalır.
  • Sayğac sıfıra çatdıqda, obyekt avtomatik olaraq yaddaşdan silinir.

ARC, tərtib mərhələsində işləyir və retain/release çağırışlarını kodda yerləşdirir, buna görə proqramçı yaddaşı əl ilə idarə etməyə ehtiyac duymur.

Swift nümunəsi:

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

var person1: Person? = Person(name: "Иван") // retention count = 1
var person2 = person1 // retention count = 2
person1 = nil // retention count = 1
person2 = nil // retention count = 0, Person obyekti silinir

Bu şəkildə, ARC aktiv istinadlar olmadıqda obyektləri avtomatik olaraq sərbəst buraxır.