メソッド:*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/