Sobes.tech
Junior — Middle

Kas saak selgitada ARC automaatse mälu haldamise mehhanismi ja kuidas see vabastab kasutamata objektid?

sobes.tech AI

Vastus AI-lt

ARC (Automatic Reference Counting) is a memory management mechanism in iOS that automatically tracks the number of references to objects and releases them when they are no longer needed.

Working principle:

  • Each object has a reference count (retention count).
  • When a reference to an object is created, the count increases.
  • When a reference is removed, the count decreases.
  • When the count reaches zero, the object is automatically removed from memory.

ARC works at compile time by inserting retain/release calls into the code, so the programmer does not need to manually manage memory.

Example in Swift:

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

var person1: Person? = Person(name: "Иван") // retain count = 1
var person2 = person1 // retain count = 2
person1 = nil // retain count = 1
person2 = nil // retain count = 0, the Person object is deallocated

This way, ARC automatically frees objects when there are no more active references to them.