2012-11-16 62 views
0

守則ALAssetsLibrary不返回對象

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參數爲零。

P.S. 012ogDLog只是漂亮的NSLog類名和行。

回答

0

問題是,在我測試的設備上,iPad 1沒有相冊/事件或面孔。

所以我從

NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces;

改變了groupType到

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