Junior
Qu'est-ce que les modificateurs de mémoire strong?
sobes.tech IA
Réponse de l'IA
Le modificateur strong en Swift indique qu'une référence à un objet augmente le compteur de références de cet objet de un. Cela signifie que l'objet sera conservé en mémoire tant qu'il existe au moins une référence forte vers lui.
Il est utilisé par défaut pour les types de référence (classes). L'assignation de nil à une variable avec le modificateur strong diminue le compteur de références. Lorsque le compteur de références atteint zéro, l'objet est libéré de la mémoire.
Exemple:
class Person {
var name: String
init(name: String) {
self.name = name
print("\(name) est en cours d'initialisation")
}
deinit {
print("\(name) est en train d'être désinitialisé")
}
}
var reference1: Person?
var reference2: Person?
reference1 = Person(name: "Alice") // Compteur de références à Alice: 1
reference2 = reference1 // Compteur de références à Alice: 2
reference1 = nil // Compteur de références à Alice: 1
reference2 = nil // Compteur de références à Alice: 0, Alice est désinitialisée