私はバックグラウンドスレッドでメソッドを呼び出しています..以下に書かれています
imageRef = assetLbraryImp.defaultRepresentation.fullResolutionImage;
[self saveBigImageFull:imageRef withName:mediafileName addToAlbum:isFromCamera];
-(void)saveBigImageFull:(CGImageRef)bigImage withName:(NSString*)imageName addToAlbum: (BOOL)addToAlbum{
bigImageFulldata = [NSArray arrayWithObjects: imageName, [NSNumber numberWithBool:addToAlbum], nil];
[self saveBigImage:bigImageFulldata :bigImage];
}
-(void)saveBigImage:(id)data:(CGImageRef)imageRefere{
_iName = (NSString *)[data objectAtIndex:0] ;
bigImagefileName = [[NSString alloc]initWithFormat:@"%@.jpg", _iName] ;
bigImageFilepath = [photoPath stringByAppendingPathComponent:bigImagefileName] ;
[self savePhotoBig:imageRefere toPath:bigImageFilepath];
}
-(void)savePhoto:(CGImageRef)photo toPath:(NSString *)path{
image = [UIImage imageWithCGImage:photo];
imageData = UIImagePNGRepresentation(image);
[imageData writeToFile:path atomically:NO];
if(photo)
CFRelease(photo);
}
しかし、CFRelease が原因でアプリがクラッシュします。CFReleaseを削除すると、コードは正常に機能します.100枚の画像を保存している場合、100枚の画像が保存されます。エンドアプリのクラッシュで保存した後でも。途中ではなく、プロセスの最後にアプリがクラッシュします。
何か案が?