仅当在xcode中选择了设备选项时,ALAssestsLibrary才会激活

时间:2011-03-28 06:20:26

标签: iphone xcode

我想使用ALAssetsLibrary框架来显示相册中的照片。但在编辑代码时我发现 1)只有在xcode的左下拉菜单中选择了“device”选项时,codesense才会显示此框架下的方法。

2)此外,当我尝试在模拟器上构建并运行时,虽然模拟器中有两个图像,但是应该保存表示图像的对象的数组是空的。

3)我在代码中使用了块,在调试时无法进入。

这两件事是否意味着框架仅在设备中运行时才有效?我现在没有设备,所以无法检查我自己。

void (^assetEnumerator)(struct ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
    if(result != NULL) {
                NSLog(@"See Asset: %@", result);
                [photosArray addObject:result];

    }
};

void (^assetGroupEnumerator)(struct ALAssetsGroup *, BOOL *) =  ^(ALAssetsGroup *group, BOOL *stop) {
    if(group != nil) {
        [group enumerateAssetsUsingBlock:assetEnumerator];
    }

};


ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library enumerateGroupsWithTypes:ALAssetsGroupAll
                           usingBlock:assetGroupEnumerator
                         failureBlock: ^(NSError    *error) {
                                NSLog(@"Failure");
                             }];

1 个答案:

答案 0 :(得分:0)

使用带有iOS 4.2和Xcode 3的iPhone模拟器对我有用。

您是否枚举enumerateGroupsWithTypes中的所有组:usingBlock:failureBlock:?

tutorial使用ALAssetsGroupAlbum 如果您正在使用本教程,请使用ALAssetsGroupAll而不是ALAssetsGroupAlbum来获取您在模拟器上保存的照片。