应用程序在捕获大量图像时崩溃

时间:2014-01-09 10:13:37

标签: ios iphone ipad

我收到内存警告,应用程序崩溃。

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

    [self.btnSelectImage setImage:image forState:UIControlStateNormal];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    {
        [popOverSelectImage2 dismissPopoverAnimated:YES];

        UIViewController *vc = [[UIViewController alloc]init];
        vc.view = self.captionView;

        [popOverSelectImage setPopoverContentSize:CGSizeMake(self.captionView.frame.size.width, self.captionView.frame.size.height) animated:NO];

        popOverSelectImage.contentViewController = vc;
        [vc release];
    }
    else
    {
        [self dismissModalViewControllerAnimated:YES];
    }

    self.imageToSave = image;
    self.imagePicker = nil;
}

1 个答案:

答案 0 :(得分:3)

当您在按钮上设置图像时,虽然它以较小的尺寸显示,但它使用的是完整图像,如果您从相机库中获取该图像,则会变得相当大。

如果您使用了大量这些图像,那么您将会使用大量内存。

如果您想将大量这些图像用作按钮图像,则应创建所需尺寸的较小图像,并使用这些缩略图而不是完整图像。你会以这种方式使用更少的内存。