0

モーダル ビューでは、ギャラリーまたはカメラから画像を設定する imageView があります。数回は完全に機能しますが、選択の数が増えるとアプリケーションがクラッシュします。私はこのコードを使用しています

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *selectedImage1 = [[info objectForKey:UIImagePickerControllerOriginalImage] fixOrientation];
        NSLog(@"size is %@",NSStringFromCGSize(selectedImage1.size));
        CGImageRef imageRef=[selectedImage1 CGImage];
        float width=CGImageGetWidth(imageRef);
        float height=CGImageGetHeight(imageRef);
        NSLog(@"length is %f",width*height);
        if (width*height<=12012000.0) {//12MP
            CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
            float length = CFDataGetLength(data);
            CFRelease(data);
            NSLog(@"data==%f ",length);

            if ((length/10)>10485760.0) {//10 MB
                NSLog(@"data length less than 10 mb==%f ",length);
                [imagePickerPopover dismissPopoverAnimated:YES];

                return;
            }
        }else{
            [imagePickerPopover dismissPopoverAnimated:YES];
            return;
        }

self.selectedImage=selectedImage1;
            [imagePickerPopover dismissPopoverAnimated:YES];

}

CFDataRef がクラッシュを引き起こしていると思います。メガピクセル (12 から 16MP) を増やすと、アプリケーションのクラッシュ頻度が増加するため、正しい方法でリリースされない可能性があります。何かアイデアはありますか?

4

1 に答える 1

0

ELCImagePickerController を使用し、

それはあなたに最適です。ELCImagePickerController ギャラリーで複数の画像を選択し、スワイプ機能を使用して画像ビューに保存できます

ソースコードはこちらから入手できます

これはあなたに役立つかもしれません。

ありがとう。

于 2013-02-11T06:52:06.550 に答える