Sobes.tech
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("---")