GMImagePicker导致应用程序崩溃

时间:2016-02-23 07:03:17

标签: ios objective-c image nsdocumentdirectory

我使用GMImagePicker,当我从相机角色中选择50多个图像时,应用程序将崩溃并且出现错误,如

 Received memory warning.

请帮我解决这个问题。 它使用非常高的内存。 我做的代码

 - (void)assetsPickerController:(GMImagePickerController *)pickerdidFinishPickingAssets:(NSArray *)assetArray{

    self.requestOptions = [[PHImageRequestOptions alloc] init];
    self.requestOptions.resizeMode   = PHImageRequestOptionsResizeModeExact;
    self.requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;

    // this one is key
    self.requestOptions.synchronous = true;

    //  self.assets = [NSMutableArray arrayWithArray:assets];
    PHImageManager *manager = [PHImageManager defaultManager];
    Albumimages = [NSMutableArray arrayWithCapacity:[assetArray count]];

    // assets contains PHAsset objects.
    __block UIImage *ima;

    for (PHAsset *asset in assetArray) {
        // Do something with the asset

        [manager requestImageForAsset:asset
                           targetSize:PHImageManagerMaximumSize
                          contentMode:PHImageContentModeDefault
                              options:self.requestOptions
                        resultHandler:^void(UIImage *image, NSDictionary *info) {
                            ima = image;

                            [Albumimages addObject:ima];

                        }];


    }

NSLog(@"%@",Albumimages);

 [self dismissViewControllerAnimated:YES completion:nil];
}

应用程序崩溃了for循环。

1 个答案:

答案 0 :(得分:1)

当您一次挑选50张照片时,它会明显崩溃。只考虑RAM分配。让我们假设每张照片的大小为5 MB,因此50 * 5 MB = 250 MB.OS将无法提供足够的内存,因此您将收到内存警告。请参阅whatsapp和其他应用最多允许10张图片。 也许你可以尝试相同的方法。