从相机点击多张图像时收到内存警告

Posted

技术标签:

【中文标题】从相机点击多张图像时收到内存警告【英文标题】:received memory warning on multiple image click from camera 【发布时间】:2015-07-06 11:27:59 【问题描述】:

我正在使用自定义相机点击多张图片。现在点击几张图片后收到内存警告,我的应用程序崩溃了。谁能帮我解决这个问题。我的代码如下所示

CImage = (UIImage *)[info objectForKey:UIImagePickerControllerOriginalImage];


[arrimages addObject: CImage];





if (aPicker.sourceType == UIImagePickerControllerSourceTypeCamera) 
    custvw.cameraButton.enabled = YES;



else



    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    

        [self.popoverController dismissPopoverAnimated:true];
        NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

        [self dismissViewControllerAnimated:YES completion:nil];

        if ([mediaType isEqualToString:(NSString *)kUTTypeImage])
        
            if (picker.sourceType==UIImagePickerControllerSourceTypePhotoLibrary)
            

                [self.picker dismissViewControllerAnimated:YES completion:nil];

            

            else
            





            


        
        else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
        
        
    

            else
    
        [self.picker dismissViewControllerAnimated:YES completion:nil];


    


    

【问题讨论】:

你能发布你在崩溃时遇到的错误吗? 在控制台中没有收到崩溃错误,它只是显示收到的内存警告。并且应用程序正在崩溃 【参考方案1】:

通过将所选图像添加到数组来将它们保存在内存中并不是一个好主意。这些图像通常非常占用内存,很容易填满内存。

[arrimages addObject: CImage];

可能的解决方案:

缩放图像

从 UIImagePickerControllerDelegate 检索图像后缩放图像 - imagePickerController:didFinishPickingMediaWithInfo:也有助于减少内存占用。

How to adjust a image size after using UIImagePickerController take a photo?

将图像保存到磁盘

不要将图像保存在内存中,而是将它们保存到磁盘并在需要时从磁盘中获取它们。

iPhone - UIImagePickerController -> save the image to app folder

【讨论】:

以上是关于从相机点击多张图像时收到内存警告的主要内容,如果未能解决你的问题,请参考以下文章

将图像选择器相机转移到一个视图到另一个视图时的内存警告

收到内存警告。带 ipad 相机

iOS - 在 Today Extension 上显示图像时收到内存警告

收到内存警告然后崩溃

UICollectionView 在滚动时收到内存警告

在 UITesting 期间导致内存警告和崩溃的背景图像