Junior — Middle
Hogyan befolyásolja a programozási nyelvben a erős hivatkozások használata egy objektum memória szerinti létezésének időtartamát?
sobes.tech MI
Válasz az MI-től
iOS-ben (és Swift/Objective-C-ben) az erős (strong) hivatkozások normál hivatkozások az objektumokra, amelyek növelik az objektum hivatkozásszámát. Amíg legalább egy erős hivatkozás létezik az objektumra, az nem kerül törlésre a memóriából.
Ez azt jelenti, hogy az objektum tovább létezik a memóriában, amíg vannak erős hivatkozások rá. Amikor minden erős hivatkozás törlésre kerül vagy nil lesz, az objektum automatikusan felszabadul (ARC — Automatikus Hivatkozásszámítás).
Példa:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // erős hivatkozás
var person2 = person1 // növeli a hivatkozásszámot
person1 = nil // az objektum még létezik, mert a person2 hivatkozik rá
person2 = nil // most az objektum felszabadul
Így az erős hivatkozások közvetlenül befolyásolják az objektum életidejét a memóriában — amíg van legalább egy, az objektum élő.