Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento da gestão automática de memória ARC em Objective-C?

sobes.tech IA

Resposta da IA

O ARC (Contagem Automática de Referências) é um mecanismo de gestão de memória em Objective-C que rastreia automaticamente o número de referências aos objetos e liberta a memória quando o objeto deixa de ser utilizado.

O princípio de funcionamento do ARC baseia-se na contagem de referências (contagem de retenção):

  • Quando um objeto é criado, a sua contagem de referências é 1.
  • Quando o objeto é atribuído a uma nova variável, a contagem aumenta (retain).
  • Quando a variável sai do escopo ou é atribuída a nil, a contagem diminui (release).
  • Quando a contagem chega a 0, o objeto é automaticamente removido da memória.

Exemplo:

NSObject *obj = [[NSObject alloc] init]; // contagem de retenção = 1
self.property = obj; // a contagem aumenta
obj = nil; // a contagem diminui
// Quando todas as referências ao objeto desaparecem, a memória é libertada automaticamente

O programador não precisa chamar explicitamente retain/release, o ARC insere essas chamadas na fase de compilação, o que reduz a probabilidade de erros de gestão de memória, como fugas ou libertações duplas.