Ios 使用requestImageDataForAsset方法显示虚拟内存耗尽
当我使用requestImageDataForAsset:存储一些数据时,我的相机卷中有10000多张照片,并且我已经为requestImageDataForAsset添加了@autoreleasepool:但是当我再次运行requestImageDataForAsset方法时,应用程序Ios 使用requestImageDataForAsset方法显示虚拟内存耗尽,ios,memory,photo-gallery,Ios,Memory,Photo Gallery,当我使用requestImageDataForAsset:存储一些数据时,我的相机卷中有10000多张照片,并且我已经为requestImageDataForAsset添加了@autoreleasepool:但是当我再次运行requestImageDataForAsset方法时,应用程序 撞车 并显示此错误: 错误:libBacktraceRecording.dylib:allocate\u free\u list\u pages()--虚拟内存耗尽 for (PHAsset *asset i
撞车 并显示此错误:
错误:libBacktraceRecording.dylib:allocate\u free\u list\u pages()--虚拟内存耗尽强>
for (PHAsset *asset in albumResult){ //there are over 10000 photos
if (asset.mediaType == PHAssetMediaTypeImage) {
__block NSString *orgFilename = nil;
@autoreleasepool {
[[PHImageManager defaultManager]
requestImageDataForAsset:asset
options:imageRequestOptions
resultHandler:^(NSData *imageData, NSString *dataUTI,
UIImageOrientation orientation,
NSDictionary *info)
{
if ([info objectForKey:@"PHImageFileURLKey"]) {
NSString *photoURL = [[info objectForKey:@"PHImageFileURLKey"]absoluteString];
orgFilename = [[photoURL componentsSeparatedByString:@"/"] lastObject];
NSArray *keys = [NSArray arrayWithObjects:@"type",@"title",@"status",@"res_resURL",@"path",@"shareName",@"authtok",@"nasIp",@"macAddr",@"albumName",nil];
NSArray *values = [NSArray arrayWithObjects:@"assetID",orgFilename,@"queue",asset.localIdentifier,destinationPath,shareName,authToken,nasIp,macAddr,albumName, nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:values forKeys:keys];
[scanedData addObject:dict];
}
}];
}
}
为什么@autoreleasepool不释放内存?
我在xCode debug navigator中检查了使用过的内存,它总是显示130MB左右,似乎自动释放池不起作用