Sobes.tech
Junior — Middle

Оё метавонед принсипи кори автоматии идоракунии хотира ARC дар Objective-C-ро шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

ARC (Ҳисоботи Автоматии Мавқеъҳо) механизмии идоракунии хотира дар Objective-C мебошад, ки автоматӣ ҳисоб мекунад, ки чанд ишора ба объектҳо ҳаст ва вақте ки объект дигар истифода намешавад, хотирасо озод мекунад.

Принсипи коркарди ARC асос ёфтааст ба ҳисоб кардани ишораҳо (retain count):

  • Вақте ки объект сохта мешавад, ҳисобкаши он 1 аст.
  • Вақте ки объект ба тағйирёбандаи нав таъин мешавад, ҳисобкаши зиёд мешавад (retain).
  • Вақте ки тағйирёбанда аз доираи истифода хориҷ мешавад ё nil таъин мешавад, ҳисобкаши кам мешавад (release).
  • Вақте ки ҳисобкаши ба 0 мерасад, объект автоматӣ аз хотира хориҷ мешавад.

Масалан:

NSObject *obj = [[NSObject alloc] init]; // retain count = 1
self.property = obj; // ҳисобкаши зиёд мешавад
obj = nil; // ҳисобкаши кам мешавад
// Вақте ки ҳамаи ишораҳо ба объект нобуд мешаванд, хотира автоматӣ озод мешавад

Тавсия дода мешавад, ки таҳиягарон мустақиман retain/release-ро набароянд, ARC ин даъватҳоро дар вақти компилятсия илова мекунад, ки хатогиҳои идоракунии хотираро, ба монанди сӯхтан ё ду маротиба озод кардан, кам мекунад.