ho 4 metodi, ogni metodo prende un secondo o due prima che il metodo restituisce, questi metodi restituiscono UIImage, ho bisogno di queste immagini per visualizzare il modo più veloce possibile.modo più veloce per eseguire più metodi tutti allo stesso tempo
-(NSMutableArray*)prepareImages{
UIImage *imageToModifyUsingUIImageCategory;
NSMutableArray *imageArray = [[NSMutableArray alloc]initWithObjects:
[imageToModifyUsingUIImageCategory doSomethingAndReturn1],
[imageToModifyUsingUIImageCategory doSomethingAndReturn2],
[imageToModifyUsingUIImageCategory doSomethingAndReturn3],
[imageToModifyUsingUIImageCategory doSomethingAndReturn4],nil];
return imageArray;
}
alla fine del suddetto metodo, avrò 4 immagini da tale matrice. ogni metodo "doSomethingAndReturn" prende uno o due secondi, significa che il mio metodo prepareImages
finirà esecuzione di circa 5 secondi. troppo a lungo eh?
La mia domanda è, quale potrebbe essere l'altro modo per realizzare tutto questo più velocemente? GCD è un'opzione per me? Come?
Qualsiasi aiuto sarebbe molto apprezzato. Grazie!
grazie, stavo pensando di trasformare i miei metodi doSomethingAndReturn in NSOperation ma non ero sicuro di provarlo. ma proverò a fare gli sforzi da quando mi hai appena spinto :) btw, che ne dici di usare gcd con doSomethingAndReturn al posto di NSOperation? gcd è molto più elegante, credo, ma pensi che io possa realizzarlo con quello? Grazie! – janusbalatbat
È possibile racchiudere ogni singola chiamata in doSomethingAndReturn nel proprio dispatch_async in modo che vengano eseguiti tutti in parallelo. Per aspettare che finiscano tutti, puoi creare un gruppo di spedizione. Vedere la documentazione qui: http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW25 –
Grazie mille così tanto ... ho aiutato molto. –