Sobes.tech
Junior — Middle

Kako uticaj snažnih referenci u programskom jeziku utiče na trajanje postojanja objekta u memoriji?

sobes.tech АИ

Одговор од АИ

U iOS-u (i u Swift/Objective-C-u), jake snažne (strong) reference su obične reference na objekte koje povećavaju brojač referenci na objekat. Dok postoji bar jedna snažna referenca na objekat, on neće biti uklonjen iz memorije.

To znači da objekat nastavlja da postoji u memoriji dok postoje snažne reference na njega. Kada sve snažne reference budu uklonjene ili postanu nil, objekat se automatski oslobađa (ARC — Automatsko brojanje referenci).

Primer:

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

var person1: Person? = Person(name: "Alex") // snažna referenca
var person2 = person1 // povećava brojač referenci

person1 = nil // objekat i dalje postoji, jer ga referencira person2
person2 = nil // sada se objekat oslobađa

Na ovaj način, snažne reference direktno utiču na vreme trajanja objekta u memoriji — dok postoji bar jedna, objekat je živ.