Я использую generateCGImagesAsynchronouslyForTimes, чтобы сделать некоторые изображения и сохранить их в NSMutableArray
, теперь, когда заканчивается функция generateCGImagesAsynchronouslyForTimes
, я хочу использовать изображение в этом массиве, как я могу получить код, который я хочу вывести после того, как все изображения были сгенерированы для завершения. Я бы просто поместил его в блок кода completionHandler
, но я не хочу, чтобы он запускался несколько раз. Я просто хочу запустить его один раз, после того, как этот метод завершился.Подождите, пока метод Xcode закончит
EDIT
Это все внутри - (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;
}
]};
Что я должен быть присваивающей что?
Спасибо за пост, я не вниз голосовать кстати, но вы бы подробнее рассказать о том, как использовать болты – iqueqiorio
Проверьте ссылку GitHub. Я нахожусь на телефоне, поэтому код очень не очень хорошо. Раздел в прочитанном мне называется «Задачи в параллельном режиме». Он покажет вам, как создать массив задач, а затем иметь один обработчик завершения, как только весь массив завершит обработку. – Fogmeister
Может ли нижестоящий избиратель оставить комментарий, чтобы объяснить, почему мой ответ неверен? Или они просто трусливы? – Fogmeister