Sobes.tech
Junior — Middle

Моҷӣ тавонӣ шарҳ диҳӣ, ки кадом намудҳои дархости хотира дар барномаҳо вуҷуд доранд?

sobes.tech AI

Ҷавоб аз AI

Дархостҳои iOS асосан бо навъҳои асосии шикасти хотира, ки бо идоракунии нодурусти истинодҳо ба объектҳо алоқаманданд, вобастаанд:

  • Циклҳои истинодҳои қавӣ (Strong Reference Cycles) — вақте ки ду объект ба ҳам истинодҳои қавӣ доранд ва ҳеҷ яке аз онҳо озод карда намешавад.
  • Шикастҳо бо сабаби пӯшишҳо (Closures) — агар пӯшиш self-ро бо истинодҳои қавӣ дарбар гирад, ин метавонад ба циклҳои истинод оварда расонад.
  • Манбаъҳои номустаммам — объектҳое, ки бо сабаби набудани даъвати deinit ё истифодаи нодуруст озод намешаванд.

Масалан, барои пешгирӣ аз циклҳои қавӣ:

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // циклҳои қавӣ

Барои пешгирӣ, истифодаи истинодҳои суст (weak) ё ғайриҳуқуқӣ (unowned) маъмул аст.