私は方法を持っていますrefreshDataAction
:
- (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");
}
開始するとすぐにrefreshDataAction
、HUD が表示されるはずです。しかし、HUD を表示する前に 13 秒待つようなものではありません。なぜそのようなことが起こっているのか、私にはわかりません。ActivityIndicator のような別のものを試しましたが、役に立ちませんでした。アプリが hud を開始するのに 13 秒待機するのはなぜですか。シミュレーターではその瞬間。ボタンをクリックすると、HUD が表示されます。しかし、デバイスでは13秒の遅延。バックグラウンド スレッドが何らかの作業を行っている間、すぐに hud を開始します。助けてください。このタスクを実行する方法を考え出すのに 5 時間を費やしました。
ここに私の質問があります:バックグラウンドのスレッドがデータをロードしている間に UIAlertview がハングする
に変更しましたMBProgressHUD
。一緒に仕事をしたことのある開発者は、MBProgressHUD
この問題に気付くかもしれません。
私のメイン UI スレッドは 13 秒間何らかのスリープ モードになっていますか? この時点では本当にわかりません。参考までに、それは iOS 6.0 です。これは社内の iPad アプリです。さらに情報が必要な場合は、お問い合わせください。ありがとうございます