2

我遍历 iOS 设备上的相册列表。在遍历这个组之后,我想简单地打印出找到的专辑数量。

我必须在我的代码中更改该NSLog语句仅在加载所有专辑时才执行的内容。

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];      
NSMutableArray *tempArray = [[NSMutableArray alloc] init];

void (^groupBlock)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop){
    if (group == nil){return;}
    [tempArray addObject:group];
 };

void (^failureBlock)(NSError *) = ^(NSError *error) {
    NSLog(@"A problem occured %@", [error description]);                                     
};  

[library enumerateGroupsWithTypes:ALAssetsGroupAll
                       usingBlock:groupBlock 
                     failureBlock:failureBlock];   

NSLog(@"%i albums were loaded", tempArray.count);
4

1 回答 1

5

您将在枚举完成时groupBlock收到一组,因此请更改:nil

if (group == nil){return;}

NSLog(@"%i albums were loaded", tempArray.count);

从类参考:

枚举完成后,将调用enumerationBlock并将组设置为nil

[来源]

于 2011-12-12T13:18:51.220 回答