Sobes.tech
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ő.