代码
if ( !_groups) {
_groups = [[NSMutableArray alloc] init];
} else {
[_groups removeAllObjects];
}
if (!_assetsLibrary) {
_assetsLibrary = [[ALAssetsLibrary alloc] init];
}
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
if ( group ) {
DLog(@"group: %@", group);
[_groups addObject:group];
[self.tableView reloadData];
}
};
ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error){
DLog(@"error: %@", error);
};
NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;
[_assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:failureBlock];
所以代码直接来自WWDC 2010演示。会议421。
问题
listGroupBlock
DLog永远不会被调用。我的_groups数组是空的;
从技术上讲,此块被称为1次,但group
参数为nil。
P.S。 DLog只是非常漂亮的NSLog,其中包含类名和行。
答案 0 :(得分:0)
问题在于,在我测试的设备上,iPad 1没有专辑/活动或面孔。
所以我从
改变了groupType NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;
到
NSUInteger groupTypes = ALAssetsGroupLibrary | ALAssetsGroupSavedPhotos | ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;