2012-04-23 49 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