私はマイクロコントローラで大学のクラスのUIをやっています。これは、異なる部屋の温度を制御する温度コントローラのユーザーインターフェースです。各部屋について、私はルームビューコントロール(NSViewControllerサブクラス)のインスタンスを持っています。これは現在の温度とターゲット温度を表示する対応ビューを管理します。再帰的なKVO通知を防ぐ方法は?
私の意図は、Cocoaバインディングを使用してRoomViewControllerのプロパティにターゲットtempディスプレイの値をバインドし、これらのプロパティをリッスンしてこれらのアップデートをシリアル経由でマイクロコントローラに送信することでした。問題は、マイクロコントローラーからのイベントによってプログラムでプロパティを設定する必要があることを意味する変更もマイクロコントローラーから来る可能性があるということです。これはプロパティ変更の通知をもたらし、MCUの値を変更することになり、MCUからのイベントが発生し、プロパティの変更などが発生します。それは無限ループに変わります。
KVOでこのようなフィードバックループを防止するにはどうすればよいですか?
私は、MCUからのイベントのためにプロパティ変更イベントがまったく生成されないようにしたいと考えています。MCUがその値が変更されたことを通知した場合、私はプロパティ変更イベントを送信したくないので、アプリケーションがただ報告されたMCUの値を変更することになります。変更イベントが発生した場合、ユーザーが手動で値を編集した場合のみ。しかし、おそらくKVOはこのように使うことはできません。 –