Sobes.tech
Junior — Middle

ARC дар вақти сохтани лоиҳа дар Objective-C чӣ гуна ёдгириро идора мекунад?

sobes.tech AI

Ҷавоб аз AI

ARC (Автоматикӣ ҳисобкунии ишораҳо) дар Objective-C як механизмест барои идораи автоматии хотира, ки дар вақти компиляция ва иҷрои барнома кор мекунад.

Дар вақти сохтани лоиҳа, компилятор кодро таҳлил мекунад ва автоматӣ зангҳои ба методҳои retain, release ва autorelease дар ҷойҳои зарурӣ барои идораи давраи зиндагии объектҳоро ворид мекунад. Ин ба таҳиягар имкон медиҳад, ки идораи хотираро дастӣ нависад, ки ин хатогиҳо ва шикастҳоро кам мекунад.

Принсипҳои асосии коркарди ARC:

  • Ҳар як объект дорои ҳисобкунии ишораҳо мебошад.
  • Ҳангоми эҷод ё таъин кардани объект, ҳисобкунак меафзояд (retain).
  • Вақте ки ишора ба объект дигар истифода намешавад, ҳисобкунак кам мешавад (release).
  • Вақте ки ҳисобкунак ба сифр мерасад, объект автоматӣ озод мешавад.

ARC дар маънои классикӣ ҷамъкунандаи партов нест: озодкунӣ фавран вақте ки ҳисобкунаки ишораҳо ба сифр мерасад, сурат мегирад, бе таваққуф барои ҷамъоварии партов.

Масалан:

// ARC автоматӣ retain/release ворид мекунад
MyObject *obj = [[MyObject alloc] init];
// ... истифодаи obj
// дар охири доира, obj автоматӣ озод мешавад

Ин тариқ, ARC идораи хотираро осон мекунад, коди бехатартар ва тозатарро месозад.