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.