Middle
Hoe werken tellers (retention counts) met sterke links in iOS?
sobes.tech AI
Antwoord van AI
Bij het toewijzen van een object aan een variabele met een sterke verwijzing, wordt de referentieteller van het object met 1 verhoogd. Wanneer de sterke verwijzing op null wordt gezet of uit de scope verdwijnt, wordt de referentieteller met 1 verlaagd. Het object wordt gedealloceerd wanneer de referentieteller nul bereikt en er geen sterke verwijzingen meer zijn.
Voorbeeld:
class MyObject {
deinit {
// Wordt aangeroepen bij deallocatie van het object
print("MyObject is gedealloceerd.")
}
}
var object1: MyObject? = MyObject() // object1 - sterke verwijzing, referentieteller van MyObject == 1
var object2 = object1 // object2 - sterke verwijzing, referentieteller van MyObject == 2
object1 = nil // De sterke verwijzing object1 wordt null, referentieteller van MyObject == 1
object2 = nil // De sterke verwijzing object2 wordt null, referentieteller van MyObject == 0
// MyObject wordt gedealloceerd