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