Junior — Middle
Dasturda ob'ekt tomonidan egallangan xotira qanday bo'shatiladi?
sobes.tech AI
AIdan javob
iOS da memoria avtomatik ravishda ARC (Automatic Reference Counting) tizimi yordamida asosiy ravishda amalga oshiriladi. Har bir ob'ektning referenslar soni bor, u yangi kuchli referens yaratilganda oshadi va o'chirilganda kamayadi. Son nolga yetganda, ob'ekt avtomatik ravishda yo'q qilinadi va xotira bo'shatiladi.
Agar kodda siklik referenslar (masalan, bir-biriga kuchli referenslarga ega bo'lgan ikki ob'ekt) yuzaga kelsa, xotira bo'shatilmaydi. Bu muammoni hal qilish uchun, zaif (weak) yoki mulk egasi bo'lmagan (unowned) referenslar ishlatiladi.
Misol:
class Person {
var name: String
weak var apartment: Apartment? // siklni oldini olish uchun zaif referens
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
unowned let tenant: Person // mulk egasi bo'lmagan referens
init(unit: String, tenant: Person) {
self.unit = unit
self.tenant = tenant
}
}
Shu tarzda, agar referenslar to'g'ri boshqarilsa, xotira avtomatik ravishda bo'shatiladi.