スレッドでデータのオンラインフェッチを実行していますが、ブロックの実行直後に何かしたいです。ブロック、コンプリートハンドラ、dispatch_asyncとdispatch_syncの対処
ここに私のコードです:
- (IBAction)refresh:(UIBarButtonItem *)sender {
NSLog(@"checking");
[self editToolbar];
dispatch_queue_t fetchQ = dispatch_queue_create("Refreshing", NULL);
dispatch_async(fetchQ, ^{
[self setupFetchedResultsController];
[self fetchImonggoItemsDataIntoDocument: self.itemDatabase];
});
dispatch_release(fetchQ);
NSLog(@"done checking");
//do something here
}
事はすぐにdispatch_asyncリターンで、ブロックの実行が行われる前であっても、すぐにプリントを「チェック済」。これをどうすれば解決できますか?
ブロックの最後に何をしたいのですか?あなたの質問を誤解していますか? –
'performBlock:'がすぐに返ってくる(非同期で動く)という問題はありますか?バックグラウンドスレッド上にある限り、常に 'performBlockAndWait:'があります。 – gregheo
@gregheo私の編集した質問をご覧ください。 :)ありがとう! – acecapades