En Swift, ¿cuál es la forma convencional de definir el patrón común en el que una propiedad debe ser externamente de solo lectura, pero modificable internamente por la clase (y subclases) que la poseen?
En Objective-C, existen las siguientes opciones:
- Declare la propiedad como de solo lectura en la interfaz y use una extensión de clase para acceder a la propiedad internamente. Este es un acceso basado en mensajes, por lo que funciona bien con KVO, atomicity, etc.
- Declare la propiedad como de solo lectura en la interfaz, pero acceda al ivar de respaldo internamente. Como el acceso predeterminado para un ivar está protegido, esto funciona bien en una jerarquía de clases, donde las subclases también podrán modificar el valor, pero el campo es de solo lectura.
En Java, la convención es:
- Declare un campo protegido e implemente un getter (método) público de solo lectura.
¿Cuál es el modismo de Swift?
var
palabra clave que falta para que se compile).