ユーザーに表示する前に、APIからデータをダウンロードしようとしています。
これが私がしていることです:
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{
__block NSMutableArray *newImages;
dispatch_sync(concurrentQueue, ^{
newImages = [NSMutableArray array];
// images retrieved using `NSURLConnection sendSynchronousRequest`
});
dispatch_sync(dispatch_get_main_queue(), ^{
// display images to the user
});
});
私の質問は、newImages
で宣言されているので、メインキューで2番目のタスクを実行するとき__block
に常に最新のデータを持っていることが保証されていますか?newImages
そうでない場合、その配列のコンテンツを2番目のブロックに渡し、最新のコンテンツを確認するための最も安全な方法は何ですか?
私のデータはどこかでめちゃくちゃになっていると思うので、なぜ私はこれを求めています。
これで問題がない場合は、他に問題が発生した場合に備えて、コード全体を投稿して全体をサポートします。