Sobes.tech
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.