我正在使用 generateCGImagesAsynchronouslyForTimes 制作一些图像并将它们保存到 a NSMutableArray
,现在当函数generateCGImagesAsynchronouslyForTimes
完成时我想使用这个数组中的图像,在所有图像都生成完成后,我怎样才能拥有我想要执行的代码。我只想把它放在completionHandler
代码块中,但我不想让它运行多次,我只想在这个方法完成后运行一次。
编辑
这都在里面- (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;
}
]};
我应该把它分配给什么?