Junior — Middle
Jak użycie silnych referencji w języku programowania wpływa na czas życia obiektu w pamięci?
sobes.tech AI
Odpowiedź od AI
W iOS (i w Swift/Objective-C) silne (strong) odwołania to zwykłe odwołania do obiektów, które zwiększają licznik odwołań do obiektu. Dopóki istnieje co najmniej jedno silne odwołanie do obiektu, nie zostanie on usunięty z pamięci.
Oznacza to, że obiekt nadal istnieje w pamięci, dopóki są do niego silne odwołania. Gdy wszystkie silne odwołania zostaną usunięte lub ustawione na nil, obiekt jest automatycznie zwalniany (ARC — automatyczne zliczanie odwołań).
Przykład:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // silne odwołanie
var person2 = person1 // zwiększa licznik odwołań
person1 = nil // obiekt nadal istnieje, ponieważ person2 się do niego odwołuje
person2 = nil // teraz obiekt jest zwalniany
W ten sposób silne odwołania bezpośrednio wpływają na czas życia obiektu w pamięci — dopóki istnieje co najmniej jedno, obiekt jest żywy.