我正在通过segue调用视图。该视图的表数据源是使用“ setFlights”从父视图控制器发送的。我想在后台运行该表数据源的更新,并在前台显示一个旋转的轮子。但是,我无法使其正常工作……没有异步块,我就可以正确下载表的数据,但是视图被阻止并且没有显示旋转的轮子。像此代码片段中所示,我既没有得到纺车,也没有填充表格。我在做什么错了?
- (void)setFlights:(NSArray *)flights
{
[ProgressHudView show];
//SET LABEL
[ProgressHudView setText:NSLocalizedString(@"DOWNLOADING FLIGHT NUMBERS", nil)];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
_flights = flights;
_flightInfoForFlight = nil;
NSMutableArray *tempMutableFlightInfoArray = [[NSMutableArray alloc]init];
NSString *airline = nil;
NSString *flightNumber = nil;
for(NSString *flight in flights){
airline = [FMOAuthManager getATCAirlineCodeFromFlightEvent:flight];
flightNumber = [FMOAuthManager getFlightNumberFromFlightEvent:flight];
NSLog(@"Get flight status for airline: %@, FlightNumber: %@", airline, flightNumber);
if([FMOAuthManager canDisplayLiveTimesForAirlineCode: airline]){
NSArray *flightStatus = [[FMOAuthManager sharedManager] getFlightStatusSynchronouslyForAirline:airline andFlightNumber:flightNumber onDate:[NSDate date]];
for(NSDictionary *flightData in flightStatus){
[tempMutableFlightInfoArray addObject:flightData];
}
}
}
_flightInfoForFlight = [tempMutableFlightInfoArray copy];
dispatch_async(dispatch_get_main_queue(), ^{
[ProgressHudView hide];
});
});
}