在我的前一篇博客中提到了如何为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选项了。琢磨了很久,终于在一个细节上找到了原因:
有点(代码)洁癖的我觉得Line 44很别扭,为什么要空一行呢,我忍不住习惯性要把这一行删掉——结果发现这是库文件。于是我顺着Line 44往后看:
后面是换行的注释,“exception”、“not”等单词晃亮了我——原来ALAssetsGroupLibrary不包括在内!
这个ALAssetsGroupAll的后缀“All”名不副实啊⋯⋯