Sobes.tech
Junior

Mis on strong mälu modifikaatorid?

sobes.tech AI

Vastus AI-lt

strong modifikatoris uztur stipru atsauci uz objektu, novēršot tā deallocāciju, kamēr pastāv vismaz viena stipra atsauce. Parasti tas tiek izmantots mainīgajiem, kas deklarēti bez īpašiem modifikatoriem.

Piemērs:

class MyClass {
    var name: String = ""

    init(name: String) {
        self.name = name
        print("Objekts '\(name)' izveidots")
    }

    deinit {
        print("Objekts '\(name)' deallocēts")
    }
}

// stipra atsauce
var obj1: MyClass? = MyClass(name: "Pirmais")
// Cita stipra atsauce
var obj2: MyClass? = obj1

print("---")

// Vienas atsauces iestatīšana uz nil neizraisa deallocāciju
obj1 = nil
print("---")

// Pēdējās stiprās atsauces iestatīšana uz nil izraisa deallocāciju
obj2 = nil
print("---")