私は単一のスレッドですべてを行っていましたが、非同期呼び出しに移行し始めたばかりなので、少し混乱しています。
私が望むのは、空のテーブルまたはテーブルがまったくないビューをロードすることです。非同期呼び出しがデータを取得している間、MBProgressHUD が表示されるはずです。次に、データが見つかると、HUD が消え、テーブルが更新されます。
私が今持っているのは、HUDが空のテーブルの下に表示されることを除いて、すべてが機能することです. これが最も関連性の高いコードです。
- (void)awakeFromNib
{
[super awakeFromNib];
[MBProgressHUD showHUDAddedTo:self.tableView animated:YES];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
self.dataController = [[StudyController alloc] initWithCredentials:email password:password];
dispatch_sync(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.tableView animated:YES];
[self.tableView reloadData];
});
});
}
基本的に何が起こっていると思いますが、非同期呼び出しの実行中にテーブルを正しくレンダリングしていたすべてのコードが実行され、HUD の上に空のテーブルが表示され、呼び出し後に reloadData に指示したときに再び表示されます。 . 初めて実行しないようにするにはどうすればよいですか?
ありがとう。