Sobes.tech
Junior

Šta su strong modifikatori memorije?

sobes.tech АИ

Одговор од АИ

Modifikator strong održava jaku referencu na objekat, sprečavajući njegovo deallociranje dok postoji bar jedna jaka referenca. Podrazumevano se koristi za promenljive deklarisane bez posebnih modifikatora.

Primer:

class MyClass {
    var name: String = ""

    init(name: String) {
        self.name = name
        print("Objekat '\(name)' kreiran")
    }

    deinit {
        print("Objekat '\(name)' deallociran")
    }
}

// jaka referenca
var obj1: MyClass? = MyClass(name: "Prvi")
// Druga jaka referenca
var obj2: MyClass? = obj1

print("---")

// Postavljanje jedne reference na nil ne vodi do deallociranja
obj1 = nil
print("---")

// Postavljanje poslednje jake reference na nil vodi do deallociranja
obj2 = nil
print("---")