Sobes.tech
Junior — Middle

Cum influențează utilizarea referințelor puternice într-un limbaj de programare durata de viață a unui obiect în memorie?

sobes.tech AI

Răspuns de la AI

În iOS (și în Swift/Objective-C), referințele puternice (strong) sunt referințe normale către obiecte care cresc contorul de referințe al obiectului. Atâta timp cât există cel puțin o referință puternică către obiect, acesta nu va fi eliminat din memorie.

Aceasta înseamnă că obiectul continuă să existe în memorie atâta timp cât există referințe strong către el. Când toate referințele strong sunt eliminate sau devin nil, obiectul este eliberat automat (ARC — Contorizare automată a referințelor).

Exemplu:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person1: Person? = Person(name: "Alex") // referință puternică
var person2 = person1 // crește contorul de referințe

person1 = nil // obiectul încă există, deoarece person2 face referire la el
person2 = nil // acum obiectul este eliberat

Astfel, referințele strong influențează direct durata de viață a obiectului în memorie — atâta timp cât există cel puțin una, obiectul este viu.