2011-12-12 4 views
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); 

답변

5

귀하의 groupBlock 열거가 완료되면 nil의 그룹을받을 수 있도록 변경됩니다 :

if (group == nil){return;} 

클래스 기준에서

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

에 :

열거가 완료되면 그룹 nil으로 enumerationBlock이 호출됩니다.

[source]

관련 문제