ios - 获取相册列表的简单示例?

标签 ios iphone objective-c ios7

我正在尝试使用 the reference from here 获取设备中可用的相册列表:

到目前为止,我的 viewDidLoad 中有这个:

// Get albums
NSMutableArray *groups = [NSMutableArray new];
ALAssetsLibrary *library = [ALAssetsLibrary new];

ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
    if (group) {
        [groups addObject:group];
    }
};
NSUInteger groupTypes = ALAssetsGroupAlbum;
[library enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:nil];

NSLog(@"%@", groups);

但是,组数组中没有添加任何内容。我期待从 NSLog 中看到 2 个项目。

最佳答案

从 IOS9 开始,ALAsset 库已被弃用。相反,Photos Framework 引入了一种名为 PHAsset 的新 Assets 类型。您可以使用 PHAssetCollection 类检索相册。

PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:nil];

PHAssetCollectionType 定义相册的类型。您可以迭代 fetchResults 以获取每个专辑。

[userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {}];

照片框架中的相册由 PHAssetCollection 表示。

关于ios - 获取相册列表的简单示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21131175/

相关文章:

iphone - 如何在 iOS 应用程序中检查下载的图像是否已损坏?

iphone - 如何在iOS的ViewController之间传递对象?

objective-c - facebook iOS SDK 不在浏览器中

ios - 添加新 child 时出现 dispatch_group_leave 错误

ios - 导航(和状态)栏颜色与编程不同(alpha 自动设置为 0.85)

iphone - 名片解析器。如何从名片识别文本中提取相关信息?

iphone - 合并 ARC 和非 ARC 文件不起作用

objective-c - 有没有办法将方法作为 block 传递?

ios - 为 iOS : Native linking failed 编译一个 libGDX 项目

ios - 如何从 Sqlite 读取 NSDate。语法白点。