Sobes.tech
Junior — Middle

Kāds ir minimālais objektu skaits, kas nepieciešams, lai veidotos atsauces cikls?

sobes.tech AI

Atbilde no AI

Minimālais objektu skaits, nepieciešams stipram ciklam, ir divi.

Cikls veidojas, kad divi objekti ir stipras atsauces viens uz otru, kas neļauj ARC (Automātiskā atsauču skaitīšana iOS) sistēmai atbrīvot atmiņu, jo katrs objekts turpina atsauci uz otru.

Piemērs:

class A {
    var b: B?
}

class B {
    var a: A?
}

let objectA = A()
let objectB = B()

objectA.b = objectB
objectB.a = objectA

Šeit, objectA un objectB atsaucas viens uz otru, radot ciklu, kas novedīs pie atmiņas noplūdes, ja netiek izmantotas vājās (weak) vai neuzturētās (unowned) atsauces.