Junior
Czym są modyfikatory pamięci strong?
sobes.tech AI
Odpowiedź od AI
Modyfikator strong utrzymuje silne odniesienie do obiektu, zapobiegając jego deallokacji tak długo, jak istnieje co najmniej jedno silne odniesienie. Domyślnie używany dla zmiennych zadeklarowanych bez specjalnych modyfikatorów.
Przykład:
class MyClass {
var name: String = ""
init(name: String) {
self.name = name
print("Obiekt '\(name)' utworzony")
}
deinit {
print("Obiekt '\(name)' zwolniony")
}
}
// silne odniesienie
var obj1: MyClass? = MyClass(name: "Pierwszy")
// Inne silne odniesienie
var obj2: MyClass? = obj1
print("---")
// Ustawienie jednej referencji na nil nie powoduje deallokacji
obj1 = nil
print("---")
// Ustawienie ostatniej silnej referencji na nil powoduje deallokację
obj2 = nil
print("---")