Ich habe 4 Methoden, jede Methode dauert eine Sekunde oder zwei vor der Methode zurück, diese Methoden zurück UIImage, ich brauche diese Bilder, um den schnellsten Weg anzuzeigen, den ich kann.schnellste Möglichkeit, mehrere Methoden alle gleichzeitig auszuführen
-(NSMutableArray*)prepareImages{
UIImage *imageToModifyUsingUIImageCategory;
NSMutableArray *imageArray = [[NSMutableArray alloc]initWithObjects:
[imageToModifyUsingUIImageCategory doSomethingAndReturn1],
[imageToModifyUsingUIImageCategory doSomethingAndReturn2],
[imageToModifyUsingUIImageCategory doSomethingAndReturn3],
[imageToModifyUsingUIImageCategory doSomethingAndReturn4],nil];
return imageArray;
}
Am Ende der obigen Methode, ich werde 4 Bilder von diesem Array haben. Jede "doSomethingAndReturn" -Methode dauert ein oder zwei Sekunden, dh meine prepareImages
-Methode beendet die Ausführung ungefähr 5 Sekunden. zu lang, nicht wahr?
Meine FRAGE ist, was könnte der andere Weg sein, all diese schneller zu erreichen? Ist GCD eine Option für mich? Wie?
Jede Hilfe würde sehr geschätzt werden. Vielen Dank!
danke, ich habe darüber nachgedacht, meine DoSomethingAndReturn-Methoden in NSOperation umzuwandeln, aber ich war nicht sicher, es zu versuchen. aber ich werde versuchen, die Bemühungen zu tun, da du mich einfach gedrängt hast :) Was ist nun, wenn du gcd mit doSomethingAndReturn anstelle von NSOperation verwendest? gcd ist viel eleganter, denke ich, aber denkst du, dass ich es damit erreichen kann? Vielen Dank! – janusbalatbat
Sie können jeden einzelnen Aufruf für doSomethingAndReturn in seinem eigenen dispatch_async umbrechen, sodass alle gleichzeitig ausgeführt werden. Um darauf zu warten, dass alle fertig sind, können Sie eine Versandgruppe erstellen. Siehe die Dokumentation hier: http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW25 –
Vielen Dank so viel ... Hat mir sehr geholfen. –