我有一段代码,大致如下:
[SVProgressHUD show];
[imageGenerator generateCGImagesAsynchronouslyForTimes:times
completionHandler:^(CMTime requestedTime, ...) {
dispatch_group_async(queueGroup, queue, ^{
// Do stuff
});
}];
dispatch_group_wait(queueGroup, DISPATCH_TIME_FOREVER);
[SVProgressHUD dismiss];
基本上,显示加载动画HUD并从资产开始生成图像缩略图,然后在完成后隐藏HUD。我使用了一个调度组,因为我希望在隐藏HUD之前确保所有缩略图都已生成。
但是当我运行它时,HUD立即消失。我猜这是由于
generateCGImagesAsynchronouslyForTimes: completionHandler:
的异步特性--dispatch_group_wait
在completionHandler内的第一个dispatch_group_async
之前被调用。有什么优雅的方法可以解决这个问题吗?谢谢。