2011年5月26日木曜日

アルバムに保存されている写真データを取得する 2

ALAssetsGroup から ALAsset を取得する

メソッド:*1
Tasks → Enumerating Assets
- enumerateAssetsUsingBlock:

→ パラメータに group の asset を取得する処理を block で記述する。

    ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock = ^(ALAsset *result, NSUInteger index, BOOL *stop)
    {
        if (result) {
        // asset の取得に成功した場合
            [assets addObject:result];
        }
    };

    [assetsGroup enumerateAssetsUsingBlock:assetsEnumerationBlock];

--------------------

asset を取得する際にフィルタリングができる*2

メソッド:
Tasks → Filtering
- setAssetsFilter:

設定できるフィルタは以下の3種類
allAssets
allPhotos
allVideos

    // 写真を取得するフィルタを設定する
    ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos];
    [assetsGroup setAssetsFilter:onlyPhotosFilter];
    // ALAssetsGroup から ALAsset を取得するメソッドを呼び出す
    [assetsGroup enumerateAssetsUsingBlock:assetsEnumerationBlock];

参照:
*1
ALAssetsGroup Class Reference
*2
ALAssetsFilter Class Reference

wwwdc2010 Session421/iOS/MyImagePicker/