Junior — Middle
Kuidas mõjutab tugeva viite kasutamine programmeerimiskeeles objekti olemasolu kestust mälus?
sobes.tech AI
Vastus AI-lt
iOS-да (и в Swift/Objective-C) силните (strong) препратки са обикновени препратки към обекти, които увеличават брояча на препратките към обекта. Докато съществува поне една силна препратка към обекта, той няма да бъде изтрит от паметта.
Това означава, че обектът продължава да съществува в паметта, докато има силни препратки към него. Когато всички силни препратки бъдат премахнати или станат nil, обектът автоматично се освобождава (ARC — Автоматично преброяване на препратките).
Пример:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // силна препратка
var person2 = person1 // увеличава брояча на препратките
person1 = nil // обектът все още съществува, тъй като person2 към него препраща
person2 = nil // сега обектът се освобождава
По този начин, силните препратки пряко влияят върху времето на живота на обекта в паметта — докато има поне една, обектът е жив.