2012-04-23 39 views
1

我正在iOS平臺上編程供稿閱讀器,並且在解析json結果時,我使用表示每個供稿的對象創建了一個數組。這些對象將被連續推送到NSTableView或地圖(他們擁有大量信息)。有時會發生Feed沒有返回位置信息,但返回該地點的foursquare Id,因此我必須聯繫foursquare服務器並獲取信息。 Wath是做這件事的最好方法嗎? (我所以想知道當陣列中的所有原料已檢索自己的信息,這樣我可以把所有在地圖上,並在實現代碼如下)異步下載對象屬性

感謝

回答

1

您可以創建一個NSOperationQueue並添加操作從服務器獲取信息,然後觀察隊列的「操作」鍵路徑。當operations.count == 0時,然後執行您的推送到地圖和tableview。

編輯

你不投票,本身 - 你所觀察的財產和接收的任何更改的通知。

將自己添加爲隊列操作屬性的觀察者。

[self.runningQueue addObserver:self forKeyPath:@"operations" options:0 context:NULL]; 

然後執行以下操作:

- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
        change:(NSDictionary *)change context:(void *)context 
{ 
    if (object == self.runningQueue && [keyPath isEqualToString:@"operations"]) { 
     if ([self.runningQueue.operations count] == 0) { 
      // push to table view and map view 
     } 
    } 
    else { 
     [super observeValueForKeyPath:keyPath ofObject:object 
          change:change context:context]; 
    } 
} 

this thread

+0

如何輪詢隊列的狀態? – Pablosproject 2012-04-23 17:08:41

+0

@Pablosproject請參閱編輯進行說明。 – tronbabylove 2012-04-23 19:23:54