IOS图片库获取给定照片的相册名称
问题描述:
我一直在寻找无处不在,但一直未能找到答案。IOS图片库获取给定照片的相册名称
在IOS PhotosFramework中,我是如何拍摄图像/ PHAsset并找出所有收藏/相册分配给的内容?
我已经知道如何从那里获得所有专辑的列表,我也可以获取每张专辑中的所有图像。但是我怎样才能以相反的方式做到这一点 - 即给定PHAsset如何获取分配给它的唱片集/收藏集的名称。
这里是我得在相机胶卷的所有专辑的列表的代码:
-(void) listAllAlbums{
PHFetchOptions *userAlbumsOptions = [PHFetchOptions new];
userAlbumsOptions.predicate = [NSPredicate predicateWithFormat:@"estimatedAssetCount > 0"];
PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:userAlbumsOptions];
NSLog(@"--------- entered %s ------------- ", __PRETTY_FUNCTION__);
[userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
NSLog(@"album title %@", collection.localizedTitle);
}];
NSLog(@"--------- end of %s ------------- ", __PRETTY_FUNCTION__);
}
感谢
答
套用老苹果的广告......对此有专门的API。
如果您有PHAsset
,您可以使用fetchAssetCollectionsContainingAsset:withType:options:
获取包含它的相册集。如果您只需要用户创建的相册,请通过PHAssetCollectionTypeAlbum
获取type
参数;如果您还想要智能相册(如相机胶卷,或其他自动收集的相册(如全景图或屏幕截图)),请再次调用并通过PHAssetCollectionTypeSmartAlbum
。
调用完毕后,您可以枚举结果并读取每个结果的localizedTitle
。 (顺便说一句,PHFetchResult
支持NSFastEnumeration
,所以你不必使用enumerateObjectsUsingBlock
除非你想出于某种原因...你可以只使用一个for
- in
环)
感谢Rickster!这正是我需要的。感谢你的帮助。 – Pankaj