Tengo 4 métodos, cada método tarda un segundo o dos antes de que el método regrese, estos métodos devuelven UIImage, necesito que estas imágenes se muestren de la manera más rápida posible.forma más rápida de ejecutar múltiples métodos al mismo tiempo
-(NSMutableArray*)prepareImages{
UIImage *imageToModifyUsingUIImageCategory;
NSMutableArray *imageArray = [[NSMutableArray alloc]initWithObjects:
[imageToModifyUsingUIImageCategory doSomethingAndReturn1],
[imageToModifyUsingUIImageCategory doSomethingAndReturn2],
[imageToModifyUsingUIImageCategory doSomethingAndReturn3],
[imageToModifyUsingUIImageCategory doSomethingAndReturn4],nil];
return imageArray;
}
Al final del método anterior, tendré 4 imágenes de esa matriz. cada método "doSomethingAndReturn" tarda uno o dos segundos, significa que mi método prepareImages
terminará la ejecución aproximadamente 5 segundos. demasiado tiempo ¿eh?
mi PREGUNTA es, ¿cuál podría ser la otra forma de lograr todo esto más rápido? ¿GCD es una opción para mí? ¿cómo?
Cualquier ayuda sería muy apreciada. ¡Gracias!
gracias, estaba pensando en convertir mis métodos doSomethingAndReturn a NSOperation, pero no estaba seguro de poder probarlo. pero intentaré hacer el esfuerzo ya que me acabas de empujar :) por cierto, ¿qué hay de usar gcd con doSomethingAndReturn en lugar de NSOperation? GCD es mucho más elegante, supongo, pero ¿crees que puedo lograrlo con eso? ¡Gracias! – janusbalatbat
Puede ajustar cada llamada individual a doSomethingAndReturn en su propio dispatch_async para que todas se ejecuten en paralelo. Para esperar a que todos terminen, puede crear un grupo de despacho. Consulte la documentación aquí: http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW25 –
Muchas gracias tanto ... me ayudó mucho. –