을 시작 완료 될 때까지 아이폰 OS는 기다려야하지 확인 :전체 방법을 나는 방법을 <code>refreshDataAction</code>이 애니메이션
- (void)refreshDataAction
{
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.labelText = @"Loading Data.Please Wait";
[self deletePreviousValues];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
NSLog(@"Getting customer values");
[self getAllCustomerValues];
NSLog(@"Got customer values");
NSError *nwerror = nil;
if (![self.secondMOC save:&nwerror])
{
NSLog(@"209 Failed to save second MOC");
}
else
{
//NSLog(@"saved success");
}
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
});
NSLog(@"Saved");
});
NSLog(@"Dispatched");
}
을 이렇게 빨리 내가 HUD를 참조해야 refreshDataAction
시작한다. 그러나 HUD를 보여주기 전에 13 초를 기다리는 것과 마찬가지입니다. 나는 왜 그런 일이 일어나고 있는지 전혀 모른다. 나는 ActivityIndicator와 같은 다른 것을 시도했지만, 아무 소용이 없다. 왜 내 앱은 허드를 시작하기 위해 13 초를 기다린다. 시뮬레이터에서 그 순간. 나는 버튼을 클릭하고 나는 HUD를 본다. 하지만 장치 13 초 지연. 배경 스레드가 작업을 수행하는 동안 즉시 hud를 시작하십시오. 도와주세요. 이 작업을 수행하는 방법을 알아내는 데 5 시간을 소비했습니다.
여기 내 질문이있다 : 나는 MBProgressHUD
로 변경 UIAlertview hanging while the thread in background is loading data
가. MBProgressHUD
으로 작업 한 일부 개발자가이 문제를 볼 수 있습니다.
내 메인 UI 스레드가 13 초 동안 어떤 종류의 절전 모드에 있습니까? 나는이 시점에서 정말로 모른다. 참고로, iOS 6.0에 있습니다. 이것은 사내 iPad 응용 프로그램입니다. 더 많은 정보가 필요하다면, 묻습니다. 감사합니다.
당신이 당신의 이전 질문의 중복을 만드는 이유는 무엇? 당신이 한 모든 것은 경고 화면을'MBProgressHUD'로 대체합니다. 문제의 원인도 마찬가지입니다. – rmaddy
[배경의 스레드가 데이터를로드하는 동안 매달려있는 UIAlertview의 복제본] (http://stackoverflow.com/questions/15010458/uialertview-hanging-while-the-thread-in-background-is-loading-data) – rmaddy