Чӣ гуна кори автоматӣ ва дастӣ бо хотира дар iOS амалӣ карда мешавад ва кадом механизмҳо барои идоракунии захираҳо истифода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Дар iOS, идоракунии хотира асосан ду роҳро дар бар мегирад: автоматӣ ва дастӣ.
-
Идоракунии автоматии хотира (ARC — ҳисобкунии автоматии истинодҳо)
ARC як механизмест, ки дар компилятор ҷойгир шудааст ва ба таври автоматӣ даъватҳои retain/release-ро барои объектҳои Objective-C ва Swift илова мекунад. Он шумораи истинодҳоро ба объект ҳисоб мекунад ва вақте ки ҳисобчик ба сифр мерасад, хотираро озод мекунад.
Мисол:
class Person { var name: String init(name: String) { self.name = name } } var p1: Person? = Person(name: "Иван") var p2 = p1 // ҳисобкунии истинодҳо зиёд мешавад p1 = nil // ҳисоб кам мешавад p2 = nil // объект озод мешавад -
Идоракунии дастӣ дар хотира
Дар версияҳои кӯҳнаи iOS (пеш аз ARC), таҳиягарон ба таври дастӣ методҳои
retain,releaseваautorelease-ро барои идоракунии давраи зиндагии объектҳо даъват мекарданд. -
Идоракунии захираҳо
Ғайр аз хотира, барои идоракунии захираҳо (файлҳо, пайвастагиҳои шабакавӣ, таймерҳо) моделҳо ба монанди
deinitдар Swift барои озод кардани захираҳо ҳангоми нобуд кардани объект истифода мешаванд.Ҳамчунин, сохторҳои васеъ истифода мешаванд, мисли
autoreleasepoolбарои идоракунии объектҳои муваққатӣ.
Бинобар ин, ARC корро бо хотира хеле содда мекунад, хавфи ҷорӣ шудани сӯроқҳоро кам мекунад, ва идоракунии дастӣ камтар истифода мешавад ва танҳо дар ҳолатҳои махсус.