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ă