Я использую следующий метод, чтобы запросить несколько фотографий и добавить их в массив для последующего использования:
-(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-160мб, я получаю сообщение Connection to assetsd was interrupted or assetsd died
и приложение вылетает. Как я могу освободить ресурсы (PHFetchResult) из памяти после того, как получу те, которые мне нужны? (нужно ли это?) Я хотел бы иметь возможность добавить до 150 фотографий. Любые идеи? Спасибо