J'utilise generateCGImagesAsynchronouslyForTimes pour faire quelques images et les enregistrer dans un NSMutableArray
, maintenant que la fonction generateCGImagesAsynchronouslyForTimes
se termine, je veux utiliser l'image dans ce tableau, comment puis-je avoir le code que je veux produire après toutes les images ont été générées pour finir. Je voudrais juste le mettre dans le bloc de code completionHandler
, mais je ne veux pas l'exécuter plusieurs fois, je veux juste l'exécuter une fois, après que cette méthode est terminée.Attendre la fin de la méthode Xcode
EDIT
C'est tout à l'intérieur - (BFTask *)createImage:(NSInteger)someParameter {
AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:passsedAsset];
[imageGenerator generateCGImagesAsynchronouslyForTimes:times
completionHandler:^(CMTime requestedTime, CGImageRef image, CMTime actualTime,
AVAssetImageGeneratorResult result, NSError *error) {
if (result == AVAssetImageGeneratorSucceeded) {
UIImage *img = [UIImage imageWithCGImage:image];
NSData *imgData = UIImageJPEGRepresentation(img, 1.0);
UIImage *saveImage = [[UIImage alloc] initWithData:imgData];
[mutaleArray addObject:saveImage];
//I get Assigment to read only property error on line below
completionSource.task = saveImage;
}
]};
Que dois-je en lui assignant à?
Merci pour le post, je ne vote BTW vers le bas, mais pourriez-vous donner des précisions sur la façon d'utiliser des boulons – iqueqiorio
Vérifiez le lien GitHub. Je suis sur mon téléphone, donc je ne peux pas faire du code très bien. La section dans le read me s'appelle "Tasks in Parallel". Il vous montrera comment créer un tableau de tâches et ensuite avoir un seul gestionnaire d'achèvement une fois que le tableau entier aura fini le traitement. – Fogmeister
Pourriez l'électeur vers le bas s'il vous plaît laisser un commentaire pour expliquer pourquoi ma réponse est incorrecte? Ou sont-ils simplement lâches? – Fogmeister