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("---")