Sobes.tech
Junior

Kas yra strong atminties modifikatoriai?

sobes.tech AI

Atsakymas iš AI

strong modifikatorius išlaiko stiprią nuorodą į objektą, užkertant kelią jo deallocacijai, kol egzistuoja bent viena stipri nuoroda. Pagal numatytuosius nustatymus jis naudojamas kintamiesiems, deklaruotiems be specialių modifikatorių.

Pavyzdys:

class MyClass {
    var name: String = ""

    init(name: String) {
        self.name = name
        print("Objektas '\(name)' sukurtas")
    }

    deinit {
        print("Objektas '\(name)' deallocuotas")
    }
}

// stipri nuoroda
var obj1: MyClass? = MyClass(name: "Pirmas")
// Kita stipri nuoroda
var obj2: MyClass? = obj1

print("---")

// Nustatymas vienos nuorodos į nil neveda prie deallocacijos
obj1 = nil
print("---")

// Nustatymas paskutinės stiprios nuorodos į nil veda prie deallocacijos
obj2 = nil
print("---")