Sobes.tech
Junior — Middle

È possibile implementare una struttura dati utilizzando riferimenti deboli?

sobes.tech AI

Risposta dell'AI

Sì, in iOS (Swift/Objective-C) è possibile implementare strutture dati utilizzando riferimenti deboli (weak references). Questo è particolarmente utile per prevenire riferimenti ciclici e perdite di memoria.

Ad esempio, nell'implementazione di una lista doppiamente collegata o di un grafo, dove gli oggetti si riferiscono reciprocamente, i riferimenti deboli permettono a una delle parti di non mantenere l'oggetto in memoria se non ci sono più riferimenti forti.

Esempio in Swift:

class Node {
    var value: Int
    weak var parent: Node? // riferimento debole
    var children: [Node] = []

    init(value: Int) {
        self.value = value
    }
}

Qui, parent è un riferimento debole per evitare un ciclo tra genitore e figli.