Junior
Cosa sono i modificatori di memoria strong?
sobes.tech AI
Risposta dell'AI
Il modificatore strong mantiene un riferimento forte all'oggetto, impedendo la sua deallocazione finché esiste almeno un riferimento forte. È usato di default per le variabili dichiarate senza modificatori speciali.
Esempio:
class MyClass {
var name: String = ""
init(name: String) {
self.name = name
print("Oggetto '\(name)' creato")
}
deinit {
print("Oggetto '\(name)' deallocato")
}
}
// riferimento forte
var obj1: MyClass? = MyClass(name: "Primo")
// Altro riferimento forte
var obj2: MyClass? = obj1
print("---")
// Impostare una variabile a nil non porta alla deallocazione
obj1 = nil
print("---")
// Impostare l'ultimo riferimento forte a nil porta alla deallocazione
obj2 = nil
print("---")