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が group に設定されて呼び出されnilます。

[ソース]

于 2011-12-12T13:18:51.220 に答える