Sobes.tech
Junior

Čo sú to strong modifikátory pamäte?

sobes.tech AI

Odpoveď od AI

Modifikátor strong v Swiftu označuje, že odkaz na objekt zvyšuje čítač odkazov tohto objektu o jeden. To znamená, že objekt bude uchovávaný v pamäti tak dlho, ako existuje aspoň jeden silný odkaz naň.

Používa sa predvolene pre referenčné typy (triedy). Priradenie nil premennej s modifikátorom strong znižuje čítač odkazov. Keď čítač dosiahne nulu, objekt je uvoľnený z pamäti.

Príklad:

class Person {
    var name: String
    init(name: String) {
        self.name = name
        print("\(name) sa inicializuje")
    }
    deinit {
        print("\(name) sa de-inicializuje")
    }
}

var reference1: Person?
var reference2: Person?

reference1 = Person(name: "Alice") // Čítač odkazov na Alice: 1
reference2 = reference1           // Čítač odkazov na Alice: 2

reference1 = nil                   // Čítač odkazov na Alice: 1
reference2 = nil                   // Čítač odkazov na Alice: 0, Alice sa de-inicializuje