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 ин даъватҳоро дар вақти компилятсия илова мекунад, ки хатогиҳои идоракунии хотираро, ба монанди сӯхтан ё ду маротиба озод кардан, кам мекунад.