2010-09-18 16 views
0

我正在尋找一種方法來「監視/觀察」我正在使用的單個類來傳遞來自異步http請求的信息。我想在接收並解析響應後更新UI。由於iPhone SDK沒有NSArrayController來監視單例中的數據,因此我如何進行異步UI更新?如何在iPhone上的變量/對象更改值時調用方法/選擇器

這是我有我的邏輯分離:

辛格爾頓: (保持與數據陣列)

RESTClient實現: 從遠程服務檢索XML和保存到陣列中的單

的ViewController : 需要監視單身人士的數據更改和通過函數更新UI

先謝謝您:)

回答

2

雖然iOS沒有NSArrayController,但它確實擁有所有基於頂級技術的技術。具體而言,這是鍵值結合和更基本的鍵值觀察。後者應該是您的首選工具。這是很容易做到:

1)註冊您的控制器作爲一個觀察者,像:

[singleton addObserver:self forKeyPath:@"myData" options:0 context:@"data"]; 

2)遵守所有的變化,因爲他們進來:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    if (context == @"data") { 
     // Do whatever you need to do... 
    } 
    else { 
     [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; 
    } 
} 
+0

這正是我需要完成!非常感謝您的快速準確回覆! – donholly 2010-09-18 20:28:16

相關問題