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é.