无法从iPad设备中的照片库中检索照片。

3

我正在使用ELCImagePickerController从照片库中检索照片。在模拟器中可以正常工作,但是在iPad设备上无法工作。

这显示了一个失败错误,意味着没有照片,尽管设备上有照片。

我使用了以下代码:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];        
[library enumerateGroupsWithTypes:ALAssetsGroupAll
                       usingBlock:assetGroupEnumerator 
                     failureBlock:assetGroupEnumberatorFailure];

这适用于模拟器,但不适用于iPad设备。

有人能回复一下,问题出在哪里吗?


1
您的 assetGroupEnumberatorFailure 块实际上收到了什么错误? - Anomie
嗨Anomie,警告中显示的消息为-->相册错误:错误域:ALAssetsLibraryErrorDomain Code=-3311“用户拒绝访问”UserInfo=0x147180{NSLocalizedFailureReason=用户已拒绝应用程序访问其媒体。,NSLocalizeddescription=用户拒绝访问}..我知道这意味着照片库中没有照片,但是我的设备上有照片。如果您知道原因,请告诉我。 - Steve Gear
1个回答

5
您收到的错误信息表明用户已拒绝您的程序访问照片库,并拒绝访问位置服务。由于某种未知原因,苹果使用位置服务权限通过AssetsLibrary框架来控制对照片库的访问。请进入“设置”应用程序,确保“位置服务”已开启,并且允许您的应用程序使用它。
我猜他们这样做的原因是他们担心某些应用程序可能会绕过被拒绝的位置服务,从库中加载所有照片并查找EXIF地理标记数据。

但是如何知道用户启用了位置服务,有没有办法避免这种情况? - Steve Gear
2
@Chakradhar:你可以使用CLLocationManager来更好地控制事物,但主要是要检查是否出现了带有域ALAssetsLibraryErrorDomain和代码ALAssetsLibraryAccessUserDeniedErrorALAssetsLibraryAccessGloballyDeniedError的NSError。 - Anomie
@Anomie,Steve Gear:我也在我的应用程序中使用了Assetslibrary,我遇到了同样的问题,你能给我一些想法或示例代码,以便我可以克服这个问题。提前致谢! - Gamer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接