Sobes.tech
Junior — Middle

Ako používanie silných odkazov v programovacom jazyku ovplyvňuje dobu existencie objektu v pamäti?

sobes.tech AI

Odpoveď od AI

V iOS (a v Swift/Objective-C) sú silné (strong) odkazy bežné odkazy na objekty, ktoré zvyšujú čítač odkazov na objekt. Dokud existuje aspoň jeden silný odkaz na objekt, nebude z pamäti odstránený.

To znamená, že objekt pokračuje v existencii v pamäti, kým na neho existujú silné odkazy. Keď sú všetky silné odkazy odstránené alebo sa stanú nil, objekt sa automaticky uvoľní (ARC — Automatické počítanie odkazov).

Príklad:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person1: Person? = Person(name: "Alex") // silný odkaz
var person2 = person1 // zvyšuje čítač odkazov

person1 = nil // objekt stále existuje, pretože person2 naň odkazuje
person2 = nil // teraz sa objekt uvoľní

Týmto spôsobom silné odkazy priamo ovplyvňujú dobu života objektu v pamäti — pokiaľ existuje aspoň jeden, je objekt živý.