0

こんにちは、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 は、何も参照していない画像を最終的に使用しようとするものです。

明確にする方法を教えてください。

ここまでお付き合いくださった皆様、本当にありがとうございました!

4

1 に答える 1

1

これは推測ですが、メモリが不足していて殺されているに違いありません。次の行で、バックグラウンドに送信した画像を自動解放してみてください。

[backgroundImage setImage: [[[UIImage alloc] initWithCGImage:[[info objectForKey:UIImagePickerControllerOriginalImage] CGImage]] autorelease]];
于 2009-08-06T15:20:54.597 に答える