コードを使用してメソッドを呼び出し、HUDを次のように表示しています
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"Signing you up";
// myProgressTask uses the HUD instance to update progress
[HUD showWhileExecuting:@selector(processFieldEntries) onTarget:self withObject:nil animated:YES];
processFieldEntries内で、ダイアログを表示するエラーチェックがあります。以下のように:
showDialog:
if (textError) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:errorText message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
[alertView show];
return;
}
これにより、おそらく同じスレッド上にあるか、ビューからHUDが削除されていないために、クラッシュが発生します。
私の質問は、異なるスレッドで実行されるように、異なるコードを追加する必要があるかどうかです。そして、showWhileExecuting ...と呼ばれるHUDを削除するには、processFieldEntriesメソッドに何を追加する必要がありますか。