4

当我进入相机 UIImagePickerController 时,有时会收到一条内存警告消息,但我不知道如何解决这个问题。

这是我的代码:

    -(IBAction)addImageCamera:(id)sender
    {
        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
        {
            pickerImgCamera.sourceType = UIImagePickerControllerSourceTypeCamera;
            cameraView.image=[img imageFromMainBundleFile:@"frameCam.png"];
            pickerImgCamera.cameraOverlayView=cameraView;

            [self.navigationController presentModalViewController:pickerImgCamera animated:NO];

        }
        else
        {
            UIAlertView*alert=[[UIAlertView alloc] initWithTitle:@"Oops" message:@"Camera not found" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alert show];
            alert=nil;
        }
    }


 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

        if (picker.sourceType == UIImagePickerControllerSourceTypeCamera)
        {
            [self dismissModalViewControllerAnimated:YES];

            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

            });
        }

        [photoImage setImage:image];
    } 

注意:内存警告出现在 iphone 和 ipad 中。

4

2 回答 2

0

根据我的经验,iPhone 摄像头经常触发内存警告,尤其是在旧设备上。调试时更有可能发生这种情况 - 诀窍是处理警告并摆脱不必要的东西。

于 2012-11-28T15:05:34.997 回答
-2

如果图像质量在您的应用中不是那么重要,则将 uiimagepickercontroller 的 videoQuality 设置为 UIImagePickerControllerQualityTypeLow。这将减少应用程序中的内存警告。

于 2012-11-02T12:45:26.937 回答