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.