У меня есть объект, привязанный к контроллеру, как показано ниже:
// ViewController
@objc dynamic var objectX: SomeClass {
didSet {
print("something")
}
}
override func viewDidLoad() {
self.bind(NSBindingName(rawValue: "objectX"),
to: controller,
withKeyPath: "selectedObject",
options: nil)
}
Я ожидаю, что didSet {} будет вызываться, если в контроллере выбран другой объект. Однако, если одно из свойств объекта X изменяется, то также вызывается didSet {}.
Конечно, этого не должно происходить - и если это ожидается, то есть ли способ предотвратить изменение свойств объекта сам от запуска didSet {} или необходимо проверять в didSet {}, отличается ли объект от старого? свойство объекта не вызывает обратный вызов didSet {}.