モーダル ビューでは、ギャラリーまたはカメラから画像を設定する 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) を増やすと、アプリケーションのクラッシュ頻度が増加するため、正しい方法でリリースされない可能性があります。何かアイデアはありますか?