Я делаю пользовательский интерфейс для университетского класса в микроконтроллерах. Это пользовательский интерфейс для контроллера температуры, который контролирует температуру в разных комнатах. Для каждой комнаты у меня есть экземпляр RoomViewController (подкласс NSViewController), который управляет соответствующим представлением, которое отображает текущую временную и целевую температуру, которые могут быть изменены пользователем.Как предотвратить рекурсивные уведомления KVO?
Мое намерение состояло в том, чтобы привязать значение целевого дисплея темпа к свойству в RoomViewController, используя привязки Cocoa, а затем другой класс прослушивает эти свойства для отправки этих обновлений на микроконтроллер через последовательный порт. Проблема в том, что изменения также могут исходить от микроконтроллера, что означает, что я должен установить свойство программно из-за событий с микроконтроллера. Это приведет к уведомлению об изменении свойств, которое приведет к изменению значения в MCU, что приведет к событию из MCU, которое приведет к изменению свойств и так далее. Он превратился бы в бесконечный цикл.
Как предотвратить такую петлю обратной связи в KVO?
Я не хочу, чтобы событие изменения свойства генерировалось вообще из-за события из MCU.Если MCU сообщает мне, что значение изменилось, я не хочу, чтобы событие изменения свойства отправлялось, поскольку это приведет к тому, что приложение изменит значение в MCU, о котором было только что сообщено, что-то не нужно. Только когда пользователь вручную редактирует значение, если произойдет событие изменения. Но, возможно, KVO нельзя использовать таким образом. –