Вопрос
Apple docs указывают, что:
НаблюдателиwillSet и didSet не вызывают, когда свойство сначала инициализируется. Они вызывается только тогда, когда значение свойства устанавливается вне контекста инициализации.
Можно ли принудительно вызвать их во время инициализации?
Почему?
Скажем, у меня этот класс
class SomeClass {
var someProperty: AnyObject {
didSet {
doStuff()
}
}
init(someProperty: AnyObject) {
self.someProperty = someProperty
doStuff()
}
func doStuff() {
// do stuff now that someProperty is set
}
}
Я создал метод doStuff
, чтобы сделать обработку более кратким, но я бы скорее обработал свойство в функции didSet
. Есть ли способ заставить это вызвать во время инициализации?
Обновление
Я решил просто удалить удобный для пользователя класс intializer и заставить вас установить свойство после инициализации. Это позволяет мне знать, что didSet
всегда будет вызываться. Я не решил, насколько это лучше в целом, но это хорошо подходит для моей ситуации.