Sobes.tech
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