1
我發出警告通知用戶有關保存操作,我將其添加到查看,保存一些圖像並關閉警報。然而,它並不像我希望的那樣工作。首先在控制檯中查看下面的代碼,我會得到「保存」,然後是「dispath」。我想得到相反的效果首先得到「dispath」,然後「保存」(所以在屏幕上寫入警報,然後保存在後臺,最後解除警報)。但我改變imageView1的形象,所以我不能合併出dispath_async,因爲它的UI操作..如何做到這一點呢?我需要首先合併圖像,然後保存它們以及所有計算時間以保持警惕。Dispatch_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];
});
});
我忘了補充一點,我有actionSheet,我點擊按鈕來調用上面的方法。當我使用dispatch_sync actionSheet不隱藏,以便用戶可以看到我的警報(在這種情況下出現在actionSheet菜單下)。 – Vive
對不起,我應該更清楚。你應該仍然使用'dispatch_async(dispatch_get_global_queue ...',但裏面有dispatch_sync(dispatch_get_main_queue ...)。 – jtbandes
這是一個很棒的選擇!Thanks ^^ – Vive