PHCollectionList
是一个可以包含任意数量的相册和/或文件夹的文件夹。我目前正通过PHCollection.fetchCollectionsInCollectionList(list, options: nil)
获取列表中的馆藏。
这可能会返回PHAssetCollection
或PHCollectionList
类型的对象。我只想知道该列表中的PHAssetCollection
。文档声明您可以使用fetch选项应用过滤谓词以返回数据的子集,但我不知道如何使用它来获取专辑。如何使用PHFetchOptions
仅返回给定PHAssetCollection
中的PHCollectionList
?
答案 0 :(得分:0)
你试过了吗?
[PHCollectionList fetchCollectionListsWithType:<filterType> subtype:nil optionsnil]
<ftilerType>
可以是PHCollectionListType
的任何内容:
答案 1 :(得分:0)
您可以使用谓词指定相册的名称,并使用它来从collectionList中获取特定的相册。
PHFetchOptions *fetchOptions = [PHFetchOptions new];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"title = %@", ABC];
PHFetchResult *collectionsFetchResult = [PHCollection fetchCollectionsInCollectionList:self.collectionList options:fetchOptions];
PHAssetCollection *ABCAlbum = collectionsResult.firstObject;
NSLog(@"ABC album details: %@", ABCAlbum);
或者您可以在选项中输入nil并获取List中的所有AssetCollections。
PHFetchResult *collectionsFR = [PHCollection fetchCollectionsInCollectionList:list options:nil];
if ( collectionsFR.count > 0) {
for ( PHAssetCollection *collection in collectionsFR) {
// do something with each album
NSLog(@"collection is %@", collection);
}
}