IOS 5中的ALAssetsGroup问题

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);
                     }];    

非常感谢您的帮助,任何支持都将不胜感激。谢谢。

1个回答

2

iOS 5之后,更多的Assets-Library方法是异步的,并且需要从主线程调用。确保您使用dispatch_async在主队列上从主线程调用第二个枚举组的块。

祝好,

Hendrik


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接