我正在使用以下方法请求多张照片并将它们添加到数组中以供稍后使用:
-(void) fetchImages{
self.assets = [[PHFetchResult alloc]init];
PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
self.assets = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:options];
self.photosToVideofy = [[NSMutableArray alloc]init];
CGSize size = CGSizeMake(640, 480);
PHImageRequestOptions *photoRequestOptions = [[PHImageRequestOptions alloc]init];
photoRequestOptions.synchronous = YES;
for (NSInteger i = self.firstPhotoIndex; i < self.lastPhotoIndex; i++)
{
PHAsset *asset = self.assets[i];
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeAspectFit options:photoRequestOptions resultHandler:^(UIImage *result, NSDictionary *info) {
if (result) {
[self.photosToVideofy addObject:result];
}
}];
}
NSLog(@"There are %lu photos to Videofy", (unsigned long)self.photosToVideofy.count);
}
当照片数少于50张时,一切正常。但是当照片数量超过50张时,内存占用会跳到150-160MB,然后出现错误信息连接到assetsd被中断或assetsd已停止运行
,应用程序崩溃。
获取所需的资源(PHFetchResult)后,如何释放内存?(是否需要这样做?)
我想添加最多150张照片。
有什么思路吗?
谢谢。