如何检查此过程是否已完成?

时间:2014-06-01 20:53:11

标签: ios objective-c

我正在构建一个iPhone应用程序,在该应用程序中,我从网站上的.json文件中检索数据,并将其解析为主视图中的某个UITextField视图。我想检查何时检索数据,以便我可以从屏幕上删除UIActivityIndi​​cator。

这是我要在完成时检查的代码片段,它位于viewWillAppear中:

 //if a connection is available... get and load the infor via .json
if (connection){

    dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL:
                        kLatestGigsURL];
        [self performSelectorOnMainThread:@selector(fetchedData:)
                               withObject:data waitUntilDone:YES];
    });
}

是否可以检查数据是否已被提取?如果是这样,我该怎么做?

感谢阅读!

1 个答案:

答案 0 :(得分:2)

dataWithContentsOfURL:是一种同步方法,所以一旦它返回,你可以说它已经完成了。

另外,我建议你调整你的代码,使用GCD在主线程上执行这样的块:

if (connection){

    dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL:kLatestGigsURL];
        dispatch_async(dispatch_get_main_queue(), ^{
            // Update your indicator
            [self fetchedData:data];
        });
    });

}