[英]ios - Simple example to get list of photo albums?
我正在嘗試使用此處的參考來獲取設備中可用的相冊列表:
到目前為止,我在viewDidLoad中有這個:
// Get albums
NSMutableArray *groups = [NSMutableArray new];
ALAssetsLibrary *library = [ALAssetsLibrary new];
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
[groups addObject:group];
}
};
NSUInteger groupTypes = ALAssetsGroupAlbum;
[library enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:nil];
NSLog(@"%@", groups);
但是,組數組中沒有添加任何內容。 我期待看到NSLog中的2個項目。
看起來響應來自異步響應listGroupBlock,但是你的NSLog在調用之后就出現了。 因此,組仍然是空的,並且不會在當前線程中填充。
如何在listGroupBlock中添加日志記錄?
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
if (group) {
[groups addObject:group];
}
NSLog(@"%@", groups);
// Do any processing you would do here on groups
[self processGroups:groups];
// Since this is a background process, you will need to update the UI too for example
[self.tableView reloadData];
};
對於IOS9以上,ALAsset庫已被棄用。 相反,照片框架已經引入了一種名為PHAsset的新資產類型。 您可以使用PHAssetCollection類檢索相冊。
PHFetchResult *userAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAny options:nil];
PHAssetCollectionType定義專輯的類型。 您可以迭代fetchResults以獲取每個專輯。
[userAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {}];
照片框架中的相冊由PHAssetCollection表示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.