У Swift, що є звичайним способом визначення загальної структури, коли властивість має бути зовнішньо прочитаною, але внутрішньо модифікованою класом (та підкласами), яким вона володіє.
У Objective-C є такі варіанти:
- Заявіть про властивість як прочитане лише в інтерфейсі та використовуйте розширення класу для доступу до ресурсу внутрішньо. Це доступ на основі повідомлень, отже, він добре працює з KVO, атомністю тощо.
- Заявіть про властивість як прочитане лише в інтерфейсі, але отримайте доступ до резервного ivar внутрішньо. Оскільки доступ до ivar за замовчуванням захищений, це непогано працює в ієрархії класів, де підкласи також зможуть змінювати значення, але поле в іншому випадку читається тільки.
У Java умовою є:
- Оголосити захищене поле та запровадити загальнодоступний доступ (лише для читання).
Яка ідіома Свіфта?
var
ключове слово, щоб його скласти.)