1

我正在 iOS 平台上编写提要阅读器,在解析 json 结果时,我创建了一个数组,其中包含代表每个提要的对象。这些对象将被连续推送到 NSTableView 或地图(它们具有地理定位信息)。有时会发生feed没有返回位置信息,而是返回地点的foursquare Id,所以我不得不联系foursquare服务器获取信息。最好的方法是这样做吗?(我很想知道数组中的所有提要何时检索到他们的信息,所以我可以将所有内容推送到地图和表格视图中)

谢谢

4

1 回答 1

1

您可以创建一个 NSOperationQueue 并添加操作以从服务器获取信息,然后观察队列的“操作”键路径。当 operations.count == 0 时,然后推送到地图和表格视图。

编辑

本质上,您不是在投票 - 您是在观察属性并接收任何更改的通知。

将自己添加为队列操作属性的观察者。

[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];
    }
}

看到这个线程

于 2012-04-23T14:50:25.390 回答