iOSda avtomatik va qo'lda xotira bilan ishlash qanday amalga oshiriladi va resurslarni boshqarish uchun qanday mexanizmlar ishlatiladi?
sobes.tech AI
AIdan javob
iOS-da xotira boshqaruvi ikki asosiy usul bilan amalga oshiriladi: avtomatik va qo'lda.
-
Avtomatik xotira boshqaruvi (ARC — Avtomatik Referenslar Hisobi)
ARC — bu kompilyatorga integratsiya qilingan mexanizm bo'lib, Objective-C va Swift ob'ektlari uchun retain/release chaqiruvlarini avtomatik qo'shadi. U ob'ektga bo'lgan murojaatlarni hisoblaydi va hisoblagich nolga teng bo'lsa, xotirani bo'shatadi.
Misol:
class Person { var name: String init(name: String) { self.name = name } } var p1: Person? = Person(name: "Иван") var p2 = p1 // murojaatlar soni oshadi p1 = nil // son kamayadi p2 = nil // ob'ekt bo'shatiladi -
Qo'lda xotira boshqaruvi
Eski iOS versiyalarida (ARCdan oldin), dasturchi ob'ektlarning hayot aylanishini boshqarish uchun
retain,releasevaautoreleasemetodlarini qo'lda chaqirardi. -
Resurslarni boshqarish
Xotira bilan birga, fayllar, tarmoq ulanishlari, timerlar kabi resurslarni boshqarish uchun
deinitkabi Swiftda konstruktsiyalar keng qo'llaniladi va ob'ekt yo'q qilinayotganda resurslar bo'shatiladi.Shuningdek, vaqtinchalik ob'ektlarni boshqarish uchun
autoreleasepoolkabi tuzilmalar keng qo'llaniladi.
Shu tarzda, ARC xotira bilan ishlashni sezilarli darajada soddalashtiradi, oqib ketish ehtimolini kamaytiradi, va qo'lda boshqarish kamdan-kam hollarda va faqat maxsus holatlarda qo'llaniladi.