アクションの保存についてユーザーに通知するアラートを作成しました。ビューに追加し、画像を保存してアラートを閉じます。しかし、それは私が望んでいた方法で機能していません。以下のコードを見ると、最初にコンソールで「保存されました..」、次に「dispath」が表示されます。私は反対の効果を得たいと思っています。最初に「dispath」を取得してから「保存されました..」(画面にアラートを書き込み、次にバックグラウンドで保存し、最後にアラートを閉じます)。しかし、imageView1 のイメージを変更したので、マージを dispath_async から移動できません。これは UI アクションであるためです。最初に画像をマージし、その後それらを保存する必要があり、このすべての計算時間の前に警告を維持する必要があります。
//adding alert to view
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
dispatch_async(dispatch_get_main_queue(), ^{
//i want this to complete->
imageView1.image = [self merge:imageView1.image and:imageView2.image];
NSLog(@"dispatch");
});
//and then to do this action->
UIImageWriteToSavedPhotosAlbum(imageView1.image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);
NSLog(@"saved..");
dispatch_async(dispatch_get_main_queue(), ^{
[alert dismissWithClickedButtonIndex:0 animated:YES];
});
});