Sommaire

Extensions Extensions

1. Retour sur l’héritage

En Swift, les classes peuvent hériter les unes des autres pour étendre leur comportement. Dans l’exemple suivant, la classe Fille, sans contenir le moindre code spécifique, peut hériter automatiquement des propriétés, méthodes et constructeurs de la classe Mère.

class Fille : Mère { }

Toutefois, utiliser systématiquement l’héritage pour enrichir une classe existante peut mener à une architecture complexe et rigide. Par exemple, si l’on souhaite rajouter une propriété pour savoir si une vue est visible, ou une méthode pour cacher une vue de façon animée en utilisant l’héritage, on doit créer un nouveau type de vue héritant de UIView :

class MaVue: UIView { 
    var estVisible: Bool {  
        return !isHidden && alpha > 0.0  
    } 
    func cacher(_ animé: Bool) {  
        let alphaAvantMasquage = alpha 
        if animé {  
            UIView.animate(withDuration: 0.3, animations: { 
                self.alpha = 0.0  
            }, completion: { _ in  
                self.isHidden = true  
                self.alpha ...