Junior — Middle
Ilovalarda qanday xotira oqib o'tish turlari mavjudligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
iOS-ilovalarida, xotira oqibatlarining asosiy turlari ob'ektlarga bo'lgan noto'g'ri boshqaruv bilan bog'liq:
- Kuchli referens tsikllari (Strong Reference Cycles) — ikki ob'ekt bir-biriga kuchli referenslarga ega bo'lsa va hech biri ozod qilinmasa.
- Yopishmalar (Closures) sababli oqibatlar — agar yopishma self-ni kuchli referens bilan ushlasa, bu referens tsikliga olib kelishi mumkin.
- Ozod qilinmagan resurslar — deinit chaqirilmasligi yoki noto'g'ri foydalanish sababli ozod qilinmaydigan ob'ektlar.
Kuchli referens tsikliga misol:
class Person {
var apartment: Apartment?
}
class Apartment {
var tenant: Person?
}
let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // kuchli referens tsikli
Buning oldini olish uchun, zaif (weak) yoki egalik qilmaydigan (unowned) referenslar ishlatiladi.