我有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 –
非常感謝非常感謝...幫了我很多。 –