你好,stackoverflow的人!
我有一个问题。
我正在开发一款可以拍摄多张照片的应用,每次放大它们,显示预览,保存它们,然后再次加载UIImagePickerController。
但是在拍摄了大约5到6张照片后,它就会死亡。
我认为它已经死了,因为我有一个我设置的UIImageView,在这么多图片之后,我设置它的UIImage不再引用任何东西了。
我认为罪魁祸首就在这里......
有什么我做错了吗?
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[backgroundImage setImage: [[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]]];
[backgroundImage setTransform:CGAffineTransformRotate(CGAffineTransformMakeScale(zoom/3, zoom/3), 1.570796327)];
UIGraphicsBeginImageContext([backgroundView bounds].size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextFillRect(ctx, [backgroundView bounds]);
[backgroundView.layer renderInContext:ctx];
UIImage* screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(screenImage, self, @selector(ImageDidSave:didFinishSavingWithError:contextInfo:), nil);
[self dismissModalViewControllerAnimated:YES];
}
backgroundImage最终会尝试使用不再引用任何内容的图像。
让我知道如何澄清。
非常感谢所有与我同住的人!
答案 0 :(得分:1)
这是一个猜测,但我打赌你的内存已经耗尽并被杀死。尝试自动释放您在此行中发送到背景的图像:
[backgroundImage setImage: [[[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]] autorelease]];