Sobes.tech
Junior

Ce sunt modificatorii de memorie strong?

sobes.tech AI

Răspuns de la AI

Modificatorul strong în Swift indică faptul că o referință la un obiect crește contorul de referințe al acestuia cu unu. Aceasta înseamnă că obiectul va fi păstrat în memorie atât timp cât există cel puțin o referință puternică către el.

Este utilizat implicit pentru tipurile de referință (clase). Atribuirea lui nil unei variabile cu modificatorul strong scade contorul de referințe. Când contorul ajunge la zero, obiectul este eliberat din memorie.

Exemplu:

class Person {
    var name: String
    init(name: String) {
        self.name = name
        print("\(name) este inițializat")
    }
    deinit {
        print("\(name) este de-initializat")
    }
}

var reference1: Person?
var reference2: Person?

reference1 = Person(name: "Alice") // Contorul de referințe pentru Alice: 1
reference2 = reference1           // Contorul de referințe pentru Alice: 2

reference1 = nil                   // Contorul de referințe pentru Alice: 1
reference2 = nil                   // Contorul de referințe pentru Alice: 0, Alice este de-initializată