Sobes.tech
Junior — Middle

Puteți explica mecanismul de gestionare automată a memoriei în ARC și cum eliberează obiectele neutilizate?

sobes.tech AI

Răspuns de la AI

ARC (Numărătoarea Automată a Referințelor) este un mecanism de gestionare a memoriei în iOS care urmărește automat numărul de referințe către obiecte și le eliberează atunci când nu mai sunt necesare.

Principiul de funcționare:

  • Fiecare obiect are un contor de referințe (numărul de retenție).
  • Când se creează o referință către un obiect, contorul crește.
  • Când o referință este eliminată, contorul scade.
  • Când contorul ajunge la zero, obiectul este eliminat automat din memorie.

ARC funcționează în etapa de compilare, inserând apeluri retain/release în cod, astfel încât programatorul nu trebuie să gestioneze manual memoria.

Exemplu în Swift:

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

var person1: Person? = Person(name: "Иван") // contor de retenție = 1
var person2 = person1 // contor de retenție = 2
person1 = nil // contor de retenție = 1
person2 = nil // contor de retenție = 0, obiectul Person este eliminat

Astfel, ARC eliberează automat obiectele atunci când nu mai există referințe active.