0

编码

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。

问题

listGroupBlockDLog 永远不会被调用。我的 _groups 数组是空的;从技术上讲,这个块被调用了 1 次,但group参数为 nil。

PS DLog 只是漂亮的 NSLog,其中包含类名和行。

4

1 回答 1

0

问题是在我测试的设备 iPad 1 上,没有专辑/事件或面孔。

所以我改变了 groupType 从

NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;

NSUInteger groupTypes = ALAssetsGroupLibrary | ALAssetsGroupSavedPhotos | ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;

于 2012-11-16T09:16:01.333 回答