首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >异步下载对象属性

异步下载对象属性
EN

Stack Overflow用户
提问于 2012-04-23 22:38:04
回答 1查看 155关注 0票数 1

我在iOS平台上编写了一个提要阅读器,在解析json结果时,我创建了一个包含表示每个提要的对象的数组。这些对象将被连续推送到NSTableView或地图(它们具有地理位置信息)。有时,提要不会返回位置信息,而是返回地点的foursquare Id,因此我必须联系foursquare服务器并获取该信息。这是最好的方法吗?(我非常想知道数组中的所有提要何时都检索到了它们的信息,这样我就可以在地图和表视图中推送所有内容)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 22:50:25

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

编辑

你不是在轮询--你是在观察属性并接收任何变化的通知。

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

代码语言:javascript
复制
[self.runningQueue addObserver:self forKeyPath:@"operations" options:0 context:NULL];

然后实现以下内容:

代码语言:javascript
复制
- (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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10282688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档