Junior — Middle
Kiek minimaliai objektų reikia, kad susidarytų nuorodų ciklas?
sobes.tech AI
Atsakymas iš AI
Minimalus objektų skaičius, reikalingas stipriam ciklui susidaryti, yra du.
Ciklas susidaro, kai du objektai turi stiprias nuorodas vienas į kitą, dėl ko ARC (Automatinis nuorodų skaičiavimas iOS) sistema negali laisvai atlaisvinti atminties, nes kiekvienas objektas palaiko nuorodą į kitą.
Pavyzdys:
class A {
var b: B?
}
class B {
var a: A?
}
let objectA = A()
let objectB = B()
objectA.b = objectB
objectB.a = objectA
Čia, objectA ir objectB vienas kitą nuorodoja, sukurdami ciklą, kuris gali sukelti atminties nutekėjimą, jei nenaudojamos silpnos (weak) arba neįsipareigojusios (unowned) nuorodos.