gpt4 book ai didi

objective-c - 当我在设备上运行程序时,AssetsLibrary 没有获取保存在相机胶卷中的图像

转载 作者:行者123 更新时间:2023-12-04 02:52:54 28 4
gpt4 key购买 nike

我编写了一个简单的 iOS 程序,通过使用 SDK4.2 中提供的“ Assets 库”框架来获取保存在相机胶卷中的照片图像的数量。

当我在 iPhone 模拟器上运行该程序时,它运行良好,正如我预期的那样。但是,当我在“真正的”iPhone 设备(带有 iOS 4.2.1 的 iPhone 3GS)上运行时,它没有检索到任何图像。

这个问题看起来与下面文章中讨论的问题相同: Assets Library Framework not working correctly on 4.0 and 4.2

所以,我添加了“dispatch_async(dispatch_get_main_queue()...”函数,如下所示,但我无法解决问题。

- (void)viewDidLoad {
[super viewDidLoad];

NSMutableArray assets = [[NSMutableArray array] retain]; // Prepare array to have retrieved images by Assets Library.

void (^assetEnumerator)(struct ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *asset, NSUInteger index, BOOL *stop) {
if(asset != NULL) {
[assets addObject:asset];
dispatch_async(dispatch_get_main_queue(), ^{

// show number of retrieved images saved in the Camera role.
// The [assets count] returns always 0 when I run this program on iPhone device although it worked OK on the simulator.
NSLog(@"%i", [assets count]);
});
}
};

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

// Create instance of the Assets Library.
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos // Retrieve the images saved in the Camera role.
usingBlock:assetGroupEnumerator
failureBlock: ^(NSError *error) {
NSLog(@"Failed.");
}];
}

请问您有什么解决办法吗?

最佳答案

我有 1 个更新:

为了获取错误代码,我修改了enumerateGroupsWithTypes的failureBlock如下,然后再次重现了症状。

然后,应用程序返回错误代码 -3311 (ALAssetsLibraryAccessUserDeniedError)。但是我在重现测试的时候并没有做任何拒绝操作。

err#=-3311 的可能原因是什么?

[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
usingBlock:assetGroupEnumerator
failureBlock: ^(NSError *error) {
NSLog(@"Failed");
resultMsg = [NSString stringWithFormat:@"Failed: code=%d", [error code]]; }];

关于objective-c - 当我在设备上运行程序时,AssetsLibrary 没有获取保存在相机胶卷中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391014/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com