我想使用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");
}];
答案 0 :(得分:0)
使用带有iOS 4.2和Xcode 3的iPhone模拟器对我有用。
您是否枚举enumerateGroupsWithTypes中的所有组:usingBlock:failureBlock:?
有tutorial使用ALAssetsGroupAlbum 如果您正在使用本教程,请使用ALAssetsGroupAll而不是ALAssetsGroupAlbum来获取您在模拟器上保存的照片。