Junior — Middle
ARC'da avtomatik xotira boshqaruvi mexanizmini va u qanday qilib ishlatilmaydigan obyektlarni ozod qilishini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
ARC (Avtomatik Referanslar Soni) iOS'da xotira boshqarish mexanizmi bo'lib, u avtomatik ravishda ob'ektlarga bo'lgan murojaatlarni hisoblaydi va ular endi kerak bo'lmaganida bo'shatadi.
Ishlash prinsipi:
- Har bir ob'ektning murojaatlar hisoblagichi (saqlash hisoblagichi) bor.
- Ob'ektga murojaat yaratilganda, hisoblagich oshadi.
- Murojaat o'chirilganda, hisoblagich kamayadi.
- Agar hisoblagich nolga teng bo'lsa, ob'ekt avtomatik ravishda xotiradan o'chiriladi.
ARC kompilatsiya bosqichida ishlaydi va retain/release chaqiruvlarini kodga qo'shadi, shuning uchun dasturchi xotirani qo'lda boshqarishi shart emas.
Swift misoli:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // saqlash hisoblagichi = 1
var person2 = person1 // saqlash hisoblagichi = 2
person1 = nil // saqlash hisoblagichi = 1
person2 = nil // saqlash hisoblagichi = 0, Person ob'ekti o'chiriladi
Shu tarzda, ARC faol murojaatlar bo'lmaganda ob'ektlarni avtomatik ravishda bo'shatadi.