我在iOS平台上编写了一个提要阅读器,在解析json结果时,我创建了一个包含表示每个提要的对象的数组。这些对象将被连续推送到NSTableView或地图(它们具有地理位置信息)。有时,提要不会返回位置信息,而是返回地点的foursquare Id,因此我必须联系foursquare服务器并获取该信息。这是最好的方法吗?(我非常想知道数组中的所有提要何时都检索到了它们的信息,这样我就可以在地图和表视图中推送所有内容)
谢谢
发布于 2012-04-23 22:50:25
您可以创建一个NSOperationQueue并添加从服务器获取信息的操作,然后观察队列的" operations“键路径。当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];
}
}参见this thread。
https://stackoverflow.com/questions/10282688
复制相似问题