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 调用从主线程枚举组的第二个块。

干杯,

亨德里克

于 2011-11-05T21:49:51.137 回答