アプリで MBProgressHUD ライブラリを使用していますが、大量のデータをクエリしたり、データの処理が終了した直後に表示されたりしても、進行状況の HUD が表示されない場合があります (その時点では表示されません)。 hud をもう表示する必要があります)。
別の投稿で、UI の実行サイクルがビジー状態で完全に更新できない場合があることがわかったので、問題を部分的に解決するソリューションを使用しました。すべてのリクエストで HUD が上昇しますが、ほぼ半分の回数でアプリがクラッシュします。 . なんで?助けが必要なところです。
私はテーブルビューを持っています.didSelectRowAtIndexPathデリゲートメソッドには次のコードがあります:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[NSThread detachNewThreadSelector:@selector(showHUD) toTarget:self withObject:nil];
...
}
次に、次の方法があります。
- (void)showHUD {
@autoreleasepool {
[HUD show:YES];
}
}
別の時点で、次のように呼び出します。
[HUD hide:YES];
そして、それが機能すると、hud が表示され、期待どおりに表示されたままになり、その後消えます。また、アプリケーションがクラッシュすることもあります。エラー: EXC_BAD_ACCESS 。なんで?
ちなみに、HUD オブジェクトはすでに viewDidLoad に割り当てられています。
- (void)viewDidLoad
{
[super viewDidLoad];
...
// Allocating HUD
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
[self.navigationController.view addSubview:HUD];
HUD.labelText = @"Checking";
HUD.detailsLabelText = @"Products";
HUD.dimBackground = YES;
}