Sobes.tech
Junior — Middle

El tudná magyarázni az ARC automatikus memória kezelésének mechanizmusát, és hogy hogyan szabadítja fel a nem használt objektumokat?

sobes.tech MI

Válasz az MI-től

Az ARC (Automatikus Hivatalszámítás) egy memória kezelés mechanizmus az iOS-ben, amely automatikusan nyomon követi az objektumokra mutató hivatkozások számát, és felszabadítja azokat, amikor már nincs rájuk szükség.

Működési elv:

  • Minden objektumnak van egy hivatkozásszámlálója (retention count).
  • Amikor hivatkozás jön létre egy objektumra, a számláló növekszik.
  • Amikor egy hivatkozás törlésre kerül, a számláló csökken.
  • Amikor a számláló eléri a nullát, az objektum automatikusan törlődik a memóriából.

Az ARC a fordítási szakaszban működik, és retain/release hívásokat illeszt be a kódba, így a programozónak nem kell manuálisan kezelnie a memóriát.

Swift példával:

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

var person1: Person? = Person(name: "Иван") // retention count = 1
var person2 = person1 // retention count = 2
person1 = nil // retention count = 1
person2 = nil // retention count = 0, a Person objektum törlődik

Így az ARC automatikusan felszabadítja az objektumokat, amikor már nincs aktív hivatkozás rájuk.