GMImagePicker 导致应用程序崩溃
GMImagePicker causes application crash
我使用 GMImagePicker,当我 select 来自相机角色的超过 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 循环中崩溃。
一次选择50张照片显然会崩溃。只需考虑 RAM 分配。假设每张照片的大小为 5 MB,因此 50*5 MB = 250 MB.OS 将无法提供足够的内存,因此您会收到内存警告。查看 whatsapp 和其他应用程序最多允许 10 张图片。
也许你可以尝试同样的方法。
我使用 GMImagePicker,当我 select 来自相机角色的超过 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 循环中崩溃。
一次选择50张照片显然会崩溃。只需考虑 RAM 分配。假设每张照片的大小为 5 MB,因此 50*5 MB = 250 MB.OS 将无法提供足够的内存,因此您会收到内存警告。查看 whatsapp 和其他应用程序最多允许 10 张图片。 也许你可以尝试同样的方法。