Junior
Czym są modyfikatory pamięci strong?
sobes.tech AI
Odpowiedź od AI
Modyfikator strong w Swift wskazuje, że odwołanie do obiektu zwiększa licznik odwołań do tego obiektu o jeden. Oznacza to, że obiekt będzie przechowywany w pamięci tak długo, jak istnieje co najmniej jedno silne odwołanie do niego.
Domyślnie używany jest dla typów referencyjnych (klas). Przypisanie nil do zmiennej z modyfikatorem strong zmniejsza licznik odwołań. Gdy licznik odwołań osiągnie zero, obiekt zostanie zwolniony z pamięci.
Przykład:
class Person {
var name: String
init(name: String) {
self.name = name
print("\(name) jest inicjalizowany")
}
deinit {
print("\(name) jest deinitializowany")
}
}
var reference1: Person?
var reference2: Person?
reference1 = Person(name: "Alice") // Licznik odwołań do Alice: 1
reference2 = reference1 // Licznik odwołań do Alice: 2
reference1 = nil // Licznik odwołań do Alice: 1
reference2 = nil // Licznik odwołań do Alice: 0, Alice jest deinitializowana