スレッド間でタスクを割り当てる方法、または非同期でディスパッチする方法を学ぶだけです。ビューに「触れる」操作はすべてメインスレッドで実行する必要があることを理解しています。どうですか:UIImageWriteToSavedPhotosAlbum
?これはバックグラウンドスレッドで実行できると思いますが、私は間違っていますか?
また、バックグラウンドスレッドで実行する必要がある場合、一方がUIImageを保存し、もう一方がビューからUIImageを保存するため、以下の2つの呼び出しに違いはありますか?
UIImageWriteToSavedPhotosAlbum(_someUIImage ,nil,nil,nil);
UIImageWriteToSavedPhotosAlbum(_imageView.image ,nil,nil,nil);
ちなみに、私はこのセットアップを使用して、メインスレッドでHUDを実行し、バックグラウンドでタスクを実行しています。これが私の意図です。
[HUD_code showMessage:@"saving image"];
dispatch_queue_t concurrentQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{
UIImageWriteToSavedPhotosAlbum(someUIImage ,nil,nil,nil);
dispatch_async(dispatch_get_main_queue(), ^{
[HUD_code dismiss];
});
});