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