Sobes.tech
Junior — Middle

Pode explicar o mecanismo de gestão automática de memória no ARC e como ele liberta objetos não utilizados?

sobes.tech IA

Resposta da IA

O ARC (Contagem Automática de Referências) é um mecanismo de gestão de memória no iOS que rastreia automaticamente o número de referências a objetos e os liberta quando já não são necessários.

Princípio de funcionamento:

  • Cada objeto tem um contador de referências (contagem de retenção).
  • Ao criar uma referência a um objeto, o contador aumenta.
  • Ao remover uma referência, o contador diminui.
  • Quando o contador atinge zero, o objeto é automaticamente removido da memória.

O ARC funciona na fase de compilação, inserindo chamadas de retain/release no código, portanto, o programador não precisa gerir manualmente a memória.

Exemplo em Swift:

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

var person1: Person? = Person(name: "Иван") // contador de retenção = 1
var person2 = person1 // contador de retenção = 2
person1 = nil // contador de retenção = 1
person2 = nil // contador de retenção = 0, o objeto Person é removido

Desta forma, o ARC liberta automaticamente os objetos quando já não há referências ativas a eles.