Sobes.tech
Junior — Middle

Comment peut-on faire une référence faible dans un langage de programmation?

sobes.tech IA

Réponse de l'IA

En iOS (Swift), pour créer une référence faible, on utilise le mot-clé weak. Une référence faible n'augmente pas le compteur de références de l'objet, ce qui aide à éviter les cycles de rétention et les fuites de mémoire.

Exemple:

class Person {
    var name: String
    weak var apartment: Apartment? // référence faible

    init(name: String) {
        self.name = name
    }
}

class Apartment {
    let unit: String
    var tenant: Person? // référence forte

    init(unit: String) {
        self.unit = unit
    }
}

// Utilisation:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john

Dans cet exemple, Person contient une référence faible à Apartment pour éviter un cycle de rétention entre Person et Apartment. Si les deux références étaient fortes, les objets ne seraient pas libérés de la mémoire.

Important : les références faibles doivent être optionnelles (?), car l'objet auquel elles font référence peut être supprimé.