仅限自定义相册的 PHFetchResult
Posted
技术标签:
【中文标题】仅限自定义相册的 PHFetchResult【英文标题】:PHFetchResult for Custom Album Only 【发布时间】:2015-10-18 04:35:21 【问题描述】:我只是想将位于名为“MyFolder”的自定义文件夹中的照片访问到我的 UICollectionView。我可以使用以下代码轻松使用“所有照片和视频”,但我无法弄清楚如何过滤结果以仅包含我的文件夹名称:
PHFetchOptions *allPhotosOptions = [PHFetchOptions new];
allPhotosOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
PHFetchResult *videos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeVideo options:allPhotosOptions];
[videos enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop)
//add assets to array
];
我试过用这个:
allPhotosOptions.predicate = [NSPredicate predicateWithFormat:@"title = %@", @"Coached"];
但它不起作用。有人可以帮我吗?
【问题讨论】:
【参考方案1】:哇。经过大约5个多小时的痛苦。这很简单。这是有效的代码:
__block PHAssetCollection *collection;
// Find the album
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"title = %@", @"YOUR_CUSTOM_ALBUM_NAME"];
collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum
subtype:PHAssetCollectionSubtypeAny
options:fetchOptions].firstObject;
PHFetchResult *collectionResult = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
[collectionResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop)
//add assets to an array for later use in the uicollectionviewcell
];
【讨论】:
以上是关于仅限自定义相册的 PHFetchResult的主要内容,如果未能解决你的问题,请参考以下文章