3

我正在努力确保涵盖我所有关于 ALAssetsLibrary 因任何原因而失败的基础。在查看调用时可能发生的错误时:

- (void)enumerateGroupsWithTypes:usingBlock:failureBlock;

我注意到 ALAssetsLibraryDataUnavailableError,但没有太多关于可能导致此问题的信息。我想相应地显示一个错误屏幕。

任何见解将不胜感激。谢谢!

4

2 回答 2

2

我在 3 种情况下遇到了 ALAssetsLibraryDataUnavailableError:

  1. 使用模拟器并在 iPhone 和 iPad 模拟器之间切换时。
  2. 在设备上,当照片库损坏或处于不一致状态时。
  3. 在未同步到 iTunes 的情况下执行 iOS 升级后。

我建议向用户显示一条消息,您遇到此错误,建议: 1. 打开照片应用程序...这通常会修复不一致的库。2. 如果这无济于事,请重新启动设备并与 iTunes 同步一次。

干杯,

亨德里克

于 2012-01-23T01:16:54.733 回答
0

好的,我发现了另一个出现此错误的特殊情况:

  • 尝试使用 UIImageWriteToSavedPhotosAlbum 将 UIImage 保存到相册/相册。
  • iOS 请求用户访问照片库的权限 - 用户拒绝(!)

在完成选择器中,提供的 NSError 然后包含 ALAssetsLibrary ALAssetsLibraryDataUnavailableError。

您会认为错误可能是其他类似 ALAssetsLibraryAccessUserDeniedError 或 ALAssetsLibraryAccessGloballyDeniedError。但事实并非如此。这只是 ALAssetsLibraryDataUnavailableError。

这是在 iPhone 5、iOS 6.0.1 上测试的。也许这不是一个错误,或者它是并且他们有一天会修复它。

无论如何,“修复”是让用户进入设置→隐私→照片→在此处打开您的应用程序。本地化修复建议消息是错误的 - 它建议打开照片应用程序。没有关于给出的错误的其他信息。无论如何,用户可能应该知道他/她按下了“拒绝”按钮——但他们可能还是错误地这样做了,后来他们不知道发生了什么。

于 2012-11-13T03:28:25.517 回答