iPhone:UIImagePickerController排序问题

时间:2009-08-06 15:12:05

标签: iphone uiimagepickercontroller

你好,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最终会尝试使用不再引用任何内容的图像。

让我知道如何澄清。

非常感谢所有与我同住的人!

1 个答案:

答案 0 :(得分:1)

这是一个猜测,但我打赌你的内存已经耗尽并被杀死。尝试自动释放您在此行中发送到背景的图像:

[backgroundImage setImage: [[[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]] autorelease]];