Sobes.tech
Junior — Middle

Оё имкон дорад, ки пайвастагиҳои даврӣ пайдо шаванд, ки ҷамъоварии партовҳоро дар идоракунии автоматии хотира монеъ гардонанд?

sobes.tech AI

Ҷавоб аз AI

Бале, дар iOS, ҳангоми истифодаи идораи автоматии хотира (ARC), мумкин аст, ки циклҳои ишора (retain cycles) пайдо шаванд. Ин вақте рӯй медиҳад, ки ду ё бештар аз объект бо ишораҳои қавӣ ба ҳамдигар нигоҳ медоранд, ки ин ҳисобкунаки ишораҳоро ба сифр намерасонад ва объектҳо озод намешаванд.

Барои пешгирӣ аз чунин ҳолатҳо, ишораҳои заиф (weak) ё беҳуқуқ (unowned) истифода мешаванд. Масалан, делегатҳо одатан ҳамчун weak эълон мешаванд, то циклҳоро пешгирӣ кунанд.

Масалан:

class Person {
    var apartment: Apartment?
}

class Apartment {
    weak var tenant: Person?  // ишораи заиф барои пешгирии цикл
}

ҳамин john = Person()
ҳамин unit4A = Apartment()
john.apartment = unit4A
unit4A.tenant = john

Дар ин мисол, tenant ишораи заиф аст, бинобар ин, цикл пайдо намешавад ва объектҳо дуруст аз ҷониби ҷамъоварии партовҳо озод карда мешаванд.