Dans Swift, quelle est la manière conventionnelle de définir le modèle commun où une propriété doit être en lecture seule en externe, mais modifiable en interne par la classe (et les sous-classes) qui la possèdent.
En Objective-C, il existe les options suivantes:
- Déclarez la propriété en lecture seule dans l'interface et utilisez une extension de classe pour accéder à la propriété en interne. Il s'agit d'un accès basé sur les messages, il fonctionne donc bien avec KVO, atomicité, etc.
- Déclarez la propriété en lecture seule dans l'interface, mais accédez à l'ivar de support en interne. Comme l'accès par défaut pour un ivar est protégé, cela fonctionne bien dans une hiérarchie de classes, où les sous-classes pourront également modifier la valeur, mais le champ est autrement en lecture seule.
En Java, la convention est:
- Déclarez un champ protégé et implémentez un getter (méthode) public en lecture seule.
Quelle est l'idiome de Swift?
var
mot-clé manquant pour le faire compiler.)