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

Ios 应用程序在捕获大量图像时崩溃,ios,iphone,ipad,Ios,Iphone,Ipad,我收到内存警告,应用程序崩溃 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [self.btnSelectImage setImage:ima

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

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

当您在按钮上设置图像时,尽管它显示的尺寸较小,但它使用的是完整的图像,如果您从相机库中获取图像,那么完整的图像将相当大

如果你使用了大量的这些图像,那么你将使用大量的内存


如果你想使用这些图像作为按钮图像,那么你应该创建较小的图像在你需要的大小,并使用这些缩略图,而不是完整的图像。通过这种方式,您将使用更少的内存。

当您在按钮上设置图像时,尽管它以较小的尺寸显示,但它使用的是完整的图像,如果您从相机库中获取图像,它将相当大

如果你使用了大量的这些图像,那么你将使用大量的内存


如果你想使用这些图像作为按钮图像,那么你应该创建较小的图像在你需要的大小,并使用这些缩略图,而不是完整的图像。通过这种方式,您将使用更少的内存。

没错,您不需要从库中获取太多(可能少于10)的图像来崩溃(内存不足)例如iPhone4。非常感谢您的回复。我会检查它。看起来你还没有使用ARC——你可能想考虑一下。但是我正在释放这样的按钮:Self.bTNSimiTime= nIL;它会有帮助吗?@Sk.Azad是您正在使用的图像的大小和数量导致了问题。没错,您不需要从库中获取大量(可能少于10)图像来崩溃(内存不足)例如iPhone4。非常感谢您的回复。我会检查它。看起来你还没有使用ARC——你可能想考虑一下。但是我正在释放这样的按钮:Self.bTNSimiTime= nIL;它会有帮助吗?@Sk.Azad是您使用的图像的大小和数量导致了问题。