Junior — Middle
Puoi spiegare il meccanismo di gestione automatica della memoria in ARC e come libera gli oggetti non utilizzati?
sobes.tech AI
Risposta dell'AI
ARC (Conteggio Automatico di Riferimento) è un meccanismo di gestione della memoria in iOS che traccia automaticamente il numero di riferimenti agli oggetti e li libera quando non sono più necessari.
Principio di funzionamento:
- Ogni oggetto ha un contatore di riferimenti (conteggio di retention).
- Quando si crea un riferimento a un oggetto, il contatore aumenta.
- Quando si rimuove un riferimento, il contatore diminuisce.
- Quando il contatore raggiunge zero, l'oggetto viene automaticamente rimosso dalla memoria.
ARC funziona durante la fase di compilazione, inserendo chiamate a retain/release nel codice, quindi il programmatore non deve gestire manualmente la memoria.
Esempio in Swift:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // conteggio di retention = 1
var person2 = person1 // conteggio di retention = 2
person1 = nil // conteggio di retention = 1
person2 = nil // conteggio di retention = 0, l'oggetto Person viene rimosso
In questo modo, ARC libera automaticamente gli oggetti quando non ci sono più riferimenti attivi.