我有一個自定義的UIView的子類,當值(NSInteger)低於某個值時需要執行一個選擇器。從我可以從文檔中得知的信息,我需要設置一個觀察對象來尋找這個變化。NSNotification是檢測變化的正確選擇嗎?
NSInteger值存在於視圖控制器中,並且UIView子類在同一視圖控制器中作爲子視圖實現。
我想,如果像下面是在正確的軌道上:
-(void)createNotification:
[[NSNotificationCenter defaultCenter]
addObserver:self //since this is in the viewController, I'm thinking it's "self"
selector:@selector(genCountLow:)
name:@"ReviewGenCount"
object: nil ];
我用,我想補充的條件,該觀察執行的操作掙扎。例如,如果條件是:
if(genCount < 3) {
///code statement
}
我希望我的觀察者查找上述更改,然後執行後續操作。我會像這樣將其添加到我的通知對象嗎?
- (void)genCountLow:(NSNotification *)notification {
if (genCount < 3) {
[electricalSystemDiagramView depowerShedBuses];
}
}
因此,總結一下,爲了更新genCount,我不需要實現一個NSNotification對象,因爲我可以使用自定義setter方法來完成重新繪製顯示。 – 2010-01-23 23:27:58
這是正確的。你實現的主要變化是view * controller *,而不是* view *,它決定了視圖應該顯示的內容。該視圖僅基於標誌更改其狀態。由於視圖控制器總是使用'self.view'對視圖進行引用,因此不需要使用通知,只需直接在視圖上設置屬性即可。當沒有直接連接時,通過ivars,網點或其他方式,當需要一個或多個對象對另一個對象中的更改作出反應時,通常會使用通知。 – 2010-01-24 03:15:28