Ios 图像选择器控制器崩溃
在模式视图中,我有一个imageView,在其中我设置了来自gallery或camera的图像。 有几次它工作得很完美,但随着选择次数的增加,应用程序崩溃了Ios 图像选择器控制器崩溃,ios,ipad,uiimagepickercontroller,cfdata,Ios,Ipad,Uiimagepickercontroller,Cfdata,在模式视图中,我有一个imageView,在其中我设置了来自gallery或camera的图像。 有几次它工作得很完美,但随着选择次数的增加,应用程序崩溃了 - (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ if ([mediaType isEqualToString:(NSString *)kUTTypeImage
- (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上设置该图像,因此用户可以根据自己的意愿多次更改该图像。因此,当用户多次从多媒体资料中选择图像时,它会崩溃。