Как предотвратить вызов Swift Propertyobservers при изменении переменных в наблюдаемом объекте
Во время тестирования я обнаружил это странное поведение:
var viewModel: ViewModel? {
didSet {
viewModel.delegate = self
}
}
view.viewModel?.delegate = MockDelegate
Этот код всегда приводит к viewModel.delegate
быть взглядом.
Есть ли способ предотвратить это?
1 ответ
Сначала проверьте, установлена ли viewModel. view.viewModel = model
установит делегата как ViewModel
model
объект. затем view.viewModel!.delegate = MockDelegate
переопределит объект делегата.
var viewModel: ViewModel? {
didSet {
viewModel.delegate = self // this is the issue.
}
}
view.viewModel = model
// this line should override the delegate instance from self to `MockDelegate`
view.viewModel!.delegate = MockDelegate