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 ишораи заиф аст, бинобар ин, цикл пайдо намешавад ва объектҳо дуруст аз ҷониби ҷамъоварии партовҳо озод карда мешаванд.