可能であれば、これを行うためのより良い方法を探しています。
ローカルのsqliteデータベースを更新する非同期コールバックがあります。更新が完了したら、シングルトン変数(archiveUpdateComplete)にフラグを設定しました。フラグがtrueに設定されるまで、しばらくの間眠ります。その後、テーブルビューをハイドレイトします。sleep()を削除したい!提案をありがとう。
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
- (void)viewDidLoad
{
dispatch_async(kBgQueue, ^{
//Hydrate word archive table view
do {
sleep(1.0);
} while ([sharedManager archiveUpdateComplete]==NO);
[self performSelectorOnMainThread:@selector(hydrateWordArchive) withObject:nil waitUntilDone:YES];
//Run custom activity indicator
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
});
});
}