Sobes.tech
Junior — Middle

Come influisce l'uso di riferimenti forti in un linguaggio di programmazione sulla durata di vita di un oggetto in memoria?

sobes.tech AI

Risposta dell'AI

In iOS (e in Swift/Objective-C), i riferimenti forti (strong) sono riferimenti normali agli oggetti che aumentano il conteggio dei riferimenti dell'oggetto. Finché esiste almeno un riferimento forte all'oggetto, questo non verrà rimosso dalla memoria.

Ciò significa che l'oggetto continua ad esistere in memoria finché ci sono riferimenti strong. Quando tutti i riferimenti strong vengono rimossi o diventano nil, l'oggetto viene automaticamente liberato (ARC — conteggio automatico dei riferimenti).

Esempio:

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

var person1: Person? = Person(name: "Alex") // riferimento forte
var person2 = person1 // aumenta il conteggio dei riferimenti

person1 = nil // l'oggetto esiste ancora, perché person2 fa riferimento ad esso
person2 = nil // ora l'oggetto viene liberato

In questo modo, i riferimenti strong influenzano direttamente la durata di vita dell'oggetto in memoria — finché ne esiste almeno uno, l'oggetto è vivo.