Можно ли предотвратить запуск didSet {} при изменении свойств объекта в Swift / Obj- c - PullRequest
0 голосов
/ 17 июня 2020

У меня есть объект, привязанный к контроллеру, как показано ниже:

// 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 {}.

...