我正在使用以下方法来请求一些照片并将它们添加到数组中以供以后使用:
-(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 张时,这可以正常工作。在内存跳转到 150-160mb 之后,我收到消息Connection to assetsd was interrupted or assetsd died
并且应用程序崩溃。在获得我想要的资产后,如何从内存中释放资产 (PHFetchResult)?(我需要吗?)我希望最多可以添加 150 张照片。有任何想法吗?谢谢