3

私のコードは OS 4.3 で動作していましたが、5 では ALAssetsGroup の ALAssetsGroup に関する警告が表示されます。そのためのメソッドを取得できないため、列挙型のインスタンスが見つからないため、コードを参照してください。

 void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop)
{
    if(result != nil)
    {
        [assets addObject:result];
    }
};


// Create instance of the Assets Library.
void (^assetGroupEnumerator)( ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) {
    if(group != nil)
    {
        [group enumerateAssetsUsingBlock:assetEnumerator];
    }
};



assets = [[NSMutableArray alloc] init];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
                       usingBlock:assetGroupEnumerator
                     failureBlock: ^(NSError *error) {
                         NSLog(@"failureBlock:%@",error);
                     }];    

どんな助けでも感謝しますありがとう

4

1 に答える 1

2

iOS 5 の時点で、より多くの Assets-Library メソッドが非同期であり、メインスレッドから呼び出される必要があります。メインキューでdispatch_asyncを使用して、メインスレッドからグループを列挙する2番目のブロックを呼び出すようにしてください。

乾杯、

ヘンドリック

于 2011-11-05T21:49:51.137 に答える