您好,现在我有一个应用程序从 JSON 表中提取并解析数据,并且加载时间有时是不可预测的。我尝试过的我认为足够好的方法是将视图放入带有加载指示器的视图并将其放在计时器上以在特定时间段后淡出视图。这在大多数情况下都有效,但有时它需要比计时器更长的时间来加载。我对objective-c还很陌生,但是有没有办法waitUntilDone
在删除加载视图之前构建我必须要做的事情?
- (void)viewDidLoad {
[super viewDidLoad];
//Let Everything Load First Time
LoadingView * spinner = [LoadingView loaderIntoView:self.view];
[NSTimer scheduledTimerWithTimeInterval:1.0
target:spinner
selector:@selector(removeSpinner)
userInfo:nil repeats:NO];
我在主视图控制器上所做的是引入另一个名为 LoadingView 的视图,然后在 1 秒后将其删除,这在我的视图中确实与其他代码一起加载。有没有我可以研究的东西而不是计时器来等待我的 JSON。这是我在同一个 viewDidLoad 中的 JSON
//Get the High/Low Price
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:
highlowBitcoinsURL];
[self performSelectorOnMainThread:@selector(fetchedhighlowData:) withObject:data waitUntilDone:YES];
});
//Get the latest price
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:
latestBitcoinsURL];
[self performSelectorOnMainThread:@selector(fetchedlatestData:) withObject:data waitUntilDone:YES];
});