我有4个方法,每个方法在方法返回前需要一两秒钟的时间,这些方法返回UIImage,我需要这些图像以最快的方式显示。最快的方式同时执行多个方法
-(NSMutableArray*)prepareImages{
UIImage *imageToModifyUsingUIImageCategory;
NSMutableArray *imageArray = [[NSMutableArray alloc]initWithObjects:
[imageToModifyUsingUIImageCategory doSomethingAndReturn1],
[imageToModifyUsingUIImageCategory doSomethingAndReturn2],
[imageToModifyUsingUIImageCategory doSomethingAndReturn3],
[imageToModifyUsingUIImageCategory doSomethingAndReturn4],nil];
return imageArray;
}
在上面的方法结束时,我将从该数组中得到4个图像。每个“doSomethingAndReturn”方法需要一秒或两秒钟,这意味着我的prepareImages
方法将约5秒钟完成执行。太长了吧?
我的问题是,有什么可以通过其他方式来完成所有这些更快? GCD是我的选择吗?怎么样?
任何帮助将不胜感激。谢谢!
谢谢,我正在考虑将doSomethingAndReturn方法转换为NSOperation,但我很怀疑尝试一下。但我会尽力做出努力,因为你只是推我:)顺便说一句,使用gcd与doSomethingAndReturn而不是NSOperation?我想gcd更优雅,但你认为我可以用它做到吗?谢谢! – janusbalatbat
您可以将每个单独的调用包装在自己的dispatch_async中,以使它们全部并行运行。要等待他们完成,您可以创建一个调度组。请参阅此处的文档:http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW25 –
非常感谢非常感谢...帮了我很多。 –