Ответ
Да, можно, но только при условии, что также определен и геттер (getter). Вычисляемое свойство не может иметь только сеттер.
Пример объявления:
private var _storedValue: Int = 0
var computedProperty: Int {
get {
return _storedValue
}
set(newValue) {
// Можно добавить валидацию или дополнительную логику
_storedValue = newValue
}
}
Ключевые правила:
- Обязателен геттер. Без блока
getсвойство считается read-only. - Сеттер опционален. Его можно опустить, сделав свойство доступным только для чтения.
- Логика в сеттере. В блоке
setможно выполнять валидацию, обновлять другие свойства или вызывать методы. - Невозможен сеттер без геттера. Компилятор Swift выдаст ошибку.