iphone - ALAssets 组枚举 : how to check for completion?

标签 iphone objective-c ios

ALAssets 使用单独的线程来管理枚举,我必须知道枚举何时终止。

组枚举的 block 原型(prototype)是:

typedef void (^ALAssetsLibraryGroupsEnumerationResultsBlock)(ALAssetsGroup *group, BOOL *stop);

如何添加完成 block ?

最佳答案

我找到了一个仅部分记录的解决方案。

当组枚举终止时,将调用 ALAssetsLibraryGroupsEnumerationResultsBlock group=nil。所以你可以这样写:

void (^groupsEnumerator)(ALAssetsGroup *,BOOL *) = ^(ALAssetsGroup *group, BOOL *stop){ 
    if (group != nil) {
        [group enumerateAssetsUsingBlock:assetsEnumerator];

    }else {
        NSLog(@"group enumeration terminated");
    }
}; 

相同的解决方案对 Assets 枚举有效(这没有记录 -.- )

 void (^assetsEnumerator)(ALAsset *,NSUInteger,BOOL*) = ^(ALAsset *result, NSUInteger index, BOOL *stop){    
    if (result !=nil) {
       //do something with result asset

    }else {
        NSLog(@"Assets enumeration terminated");
    }
};

关于iphone - ALAssets 组枚举 : how to check for completion?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5818486/

相关文章:

ios - 从按钮操作调用 AppDelegate 中的方法时出现错误。

ios - Objective C 访问其他类变量值

ios - 将希伯来语消息分配给 NSString 有时会显示 html 标记,如 quot&

ios - xcode 无法理解的异常

android - 用于 iOS 和 android 的具有键值存储和用户身份验证的云解决方案

iphone - 如果安装了 IOS 6,则在操作表上显示按钮

iphone - 从后台恢复应用程序会重新启动整个应用程序吗?

iphone - 在运行时获取 iPhone/iPad/iPod Touch 的 ppi

objective-c - 创建分数数组

ios - 如何在基于 AVFoundation 的自定义相机应用程序中使用 HDR?