我正在爲微控制器中的大學課程做UI。它是用於控制不同房間溫度的溫度控制器的用戶界面。對於每個房間,我都有一個RoomViewController(NSViewController子類)的實例,它管理着一個相應的視圖,該視圖顯示了用戶可以更改的當前溫度和目標溫度。如何防止遞歸KVO通知?
我的意圖是使用Cocoa綁定將目標溫度顯示的值綁定到RoomViewController中的一個屬性,然後讓另一個類監聽這些屬性以通過串行將這些更新發送到微控制器。問題是,改變也可能來自微控制器,這意味着我必須以編程方式設置屬性,因爲來自微控制器的事件。這會導致一個屬性更改通知,導致更改MCU中的值,這會導致來自MCU的事件,這會導致屬性更改等。它會變成一個無限循環。
如何避免KVO中的反饋迴路?
由於來自MCU的事件,我不希望完全生成屬性更改事件。如果MCU告訴我值已經改變,我不希望發送屬性更改事件,因爲這會導致應用程序更改剛剛報告的MCU中的值,這是不必要的。只有當用戶手動編輯值時,纔會發生更改事件。但是也許KVO不能以這種方式使用。 – 2012-03-15 09:48:14