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