我正在构建一个iPhone应用程序,在该应用程序中,我从网站上的.json文件中检索数据,并将其解析为主视图中的某个UITextField视图。我想检查何时检索数据,以便我可以从屏幕上删除UIActivityIndicator。
这是我要在完成时检查的代码片段,它位于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];
});
}
是否可以检查数据是否已被提取?如果是这样,我该怎么做?
感谢阅读!
答案 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];
});
});
}