我正在开发一个基于 ALAssetsLibrary api(自 4.0 起可用)的 iOS 应用程序,我使用它来检索保存在设备上的所有图像和视频,并且这样做非常简单。无论如何,一旦我在 iPhone 4 上安装了 iOS 4.3.4,我的代码就停止了工作。调用获取的行什么也不做!代码如下(在 iOS 4.3.3 上运行良好):
ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
ALAssetsGroupEnumerationResultsBlock assetsEnumerator = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
// handle asset
};
ALAssetsLibraryGroupsEnumerationResultsBlock groupsEnumerator = ^(ALAssetsGroup *group, BOOL *stop) {
// handle group
};
ALAssetsLibraryAccessFailureBlock failHandler = ^(NSError *error) {
// handle error
};
[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:groupsEnumerator failureBlock:failHandler];
似乎enumerateGroupsWithTypes:usingBlock:failureBlock:永远不会被调用,因为我的块都没有被执行......并且没有引发错误!为什么?我能做些什么?
ps:我试图改变“类型”参数,但这不是问题!