Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 图像选择器控制器崩溃_Ios_Ipad_Uiimagepickercontroller_Cfdata - Fatal编程技术网

Ios 图像选择器控制器崩溃

Ios 图像选择器控制器崩溃,ios,ipad,uiimagepickercontroller,cfdata,Ios,Ipad,Uiimagepickercontroller,Cfdata,在模式视图中,我有一个imageView,在其中我设置了来自gallery或camera的图像。 有几次它工作得很完美,但随着选择次数的增加,应用程序崩溃了 - (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ if ([mediaType isEqualToString:(NSString *)kUTTypeImage

在模式视图中,我有一个imageView,在其中我设置了来自gallery或camera的图像。 有几次它工作得很完美,但随着选择次数的增加,应用程序崩溃了

- (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];

}
-(void)imagePickerController:(UIImagePickerController*)选取器未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息{
if([mediaType IsequalString:(NSString*)kUTTypeImage]){
UIImage*selectedImage1=[[info objectForKey:UIImagePickerController原始图像]固定方向];
NSLog(@“大小为%@”,NSStringFromCGSize(selectedImage1.size));
CGImageRef imageRef=[selectedImage1 CGImage];
浮动宽度=CGImageGetWidth(imageRef);
浮动高度=CGImageGetHeight(imageRef);
NSLog(@“长度为%f”,宽度*高度);
如果(宽*高10485760.0){//10 MB
NSLog(@“数据长度小于10 mb==%f”,长度);
[imagePickerPopover dismissPopoverAnimated:是];
返回;
}
}否则{
[imagePickerPopover dismissPopoverAnimated:是];
返回;
}
self.selectedImage=selectedImage1;
[imagePickerPopover dismissPopoverAnimated:是];
}

我猜CFDataRef导致了崩溃,可能是它没有以正确的方式发布,因为我增加了百万像素(12到16MP)应用程序的崩溃频率。有什么想法吗?

使用ELCImagePickerController

使用
ELCImagePickerController
您可以在gallery中选择多个图像,并使用滑动功能将其保存在图像视图中

您可以从

这可能对你有帮助


谢谢。

在我的应用程序中,用户使用单个图像附件添加便笺,每次用户单击我的图像时,他都会获得“照相机”或“多媒体资料”选项,无论他选择什么,我都会在我的imageview上设置该图像,因此用户可以根据自己的意愿多次更改该图像。因此,当用户多次从多媒体资料中选择图像时,它会崩溃。