Sobes.tech
Junior — Middle

Peut-on étendre une classe ou une structure existante en lui ajoutant une nouvelle propriété via des extensions ?

sobes.tech IA

Réponse de l'IA

En Swift, les extensions permettent d’ajouter de nouvelles méthodes, propriétés calculées, initialisateurs, sous-indices et types imbriqués aux classes, structures ou énumérations existantes. Cependant, les extensions ne peuvent pas ajouter de propriétés stockées. Cela est dû au fait que les extensions ne modifient pas la structure interne du type, mais ajoutent simplement des fonctionnalités.

Si vous souhaitez ajouter une nouvelle propriété, vous pouvez utiliser une propriété calculée, qui renvoie une valeur calculée à l’exécution, mais qui n’est pas stockée en mémoire dans l’objet.

Exemple de propriété calculée dans une extension :

extension String {
    var reversedString: String {
        return String(self.reversed())
    }
}

let text = "Hello"
print(text.reversedString) // Résultat : "olleH"

Si vous devez stocker une nouvelle valeur, vous pouvez utiliser des objets associés via le runtime Objective-C, mais ce n’est pas une méthode standard et cela ne s’applique qu’aux classes héritant de NSObject.