メソッド:*1
Enumerating Assets
- enumerateGroupsWithTypes:usingBlock:failureBlock:
→ Aseets group を Type of Asset から指定する。
→ usingBlock: パラメータに assets group を取得する処理を block で記述する。
→ failureBlock: データのアクセスに失敗したときの処理を blocks で記述する。
-----------------------
サンプルソース*2
NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupEvent | ALAssetsGroupFaces; [assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:failureBlock];サンプルでは group type の絞り込みを行っているが、現時点(2011.05)時点では「ALAssetsGroupAll」を指定しないと取得ができない。
usingBlock:listGroupBlock の実装は次のとおり。
ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) { if (group) { // group を配列に格納する [groups addObject:group]; } else { // group を 数え終わったあとの処理を行う ex) データの表示 [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO]; } };
参照:
*1
ALAssetsLibrary Class Reference
*2
wwwdc2010 Session421/iOS/MyImagePicker/