Sobes.tech
Junior — Middle

Kaip stiprių nuorodų naudojimas programavimo kalboje veikia objekto egzistavimo trukmę atmintyje?

sobes.tech AI

Atsakymas iš AI

iOS-ėje (ir Swift/Objective-C) stiprios (strong) nuorodos yra įprastos nuorodos į objektus, kurios padidina objekto nuorodų skaitiklį. Kol egzistuoja bent viena stipri nuoroda į objektą, jis nėra ištrinamas iš atminties.

Tai reiškia, kad objektas toliau egzistuoja atmintyje, kol yra stiprių nuorodų į jį. Kai visos stiprios nuorodos yra pašalinamos arba tampa nil, objektas automatiškai atlaisvinamas (ARC — Automatinis nuorodų skaitiklio skaičiavimas).

Pavyzdys:

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

var person1: Person? = Person(name: "Alex") // stipri nuoroda
var person2 = person1 // padidina nuorodų skaitiklį

person1 = nil // objektas vis dar egzistuoja, nes person2 nuoroda į jį
person2 = nil // dabar objektas atlaisvinamas

Taip stiprios nuorodos tiesiogiai veikia objekto gyvavimo laiką atmintyje — kol yra bent viena, objektas gyvas.