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