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.