コード
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 です。
PS DLog は、クラス名と行が入った単なる NSLog です。