Junior
Cosa sono i modificatori di memoria strong?
sobes.tech AI
Risposta dell'AI
Il modificatore strong in Swift indica che un riferimento a un oggetto aumenta il contatore di riferimenti di quell'oggetto di uno. Ciò significa che l'oggetto rimarrà in memoria finché esiste almeno un riferimento forte ad esso.
Viene usato di default per i tipi di riferimento (classi). Assegnare nil a una variabile con il modificatore strong riduce il contatore di riferimenti. Quando il contatore di riferimenti raggiunge zero, l'oggetto viene liberato dalla memoria.
Esempio:
class Person {
var name: String
init(name: String) {
self.name = name
print("\(name) viene inizializzato")
}
deinit {
print("\(name) viene de-inizializzato")
}
}
var reference1: Person?
var reference2: Person?
reference1 = Person(name: "Alice") // Contatore di riferimenti per Alice: 1
reference2 = reference1 // Contatore di riferimenti per Alice: 2
reference1 = nil // Contatore di riferimenti per Alice: 1
reference2 = nil // Contatore di riferimenti per Alice: 0, Alice viene de-inizializzata