关于AssetsLibrary无法获取本地所有相册的问题

在我的前一篇博客中提到了如何为iPhone应用增加照片多选功能,将这个功能应用到实际生产环境中遇到了一个问题:

本地有两个相册:相机胶卷和照片图库。后者是通过同步产生的。

在如下代码中:

    dispatch_async(dispatch_get_main_queue(), ^{
        [_assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
            if (group) {
                [self.groupArray addObject:group];
                [self performSelectorOnMainThread:@selector(reloadTableView) withObject:nil waitUntilDone:YES];
            }
        } failureBlock:^(NSError *error) {
            NSLog(@"Group not found!\n");
            self.title = @"访问照片失败"; // Photo-access is disabled.
        }];
    });

通过枚举ALAssetsGroupAll类型的组别来统计相册数目,结果一直只有1个。

我很困惑,因为我用的是All选项了。琢磨了很久,终于在一个细节上找到了原因:

关于AssetsLibrary无法获取本地所有相册的问题_第1张图片

有点(代码)洁癖的我觉得Line 44很别扭,为什么要空一行呢,我忍不住习惯性要把这一行删掉——结果发现这是库文件。于是我顺着Line 44往后看:

关于AssetsLibrary无法获取本地所有相册的问题_第2张图片

后面是换行的注释,“exception”、“not”等单词晃亮了我——原来ALAssetsGroupLibrary不包括在内!

这个ALAssetsGroupAll的后缀“All”名不副实啊⋯⋯

你可能感兴趣的:(关于AssetsLibrary无法获取本地所有相册的问题)