如何测试PHImageResultIsInCloudKey?

时间:2018-02-08 02:35:32

标签: ios phasset photosframework

我的应用有一个自定义照片选择器,使用照片框架浏览相册并选择照片。我有一个非常具体的错误报告,只有当用户(a)打开了iCloud Photo Library,(b)在其照片设置中打开了Optimize Storage并且(c)特定的专辑和/或图像时离开了设备。

在这种情况下,看起来没有实际图像返回到我传递给PHCachingImageManager#requestImage的闭包。相反,根据我收集的内容,PHImageResultIsInCloudKey包含在info字典中,我需要重新调用isNetworkAccessAllowed设置为true的请求。

然而,在我自己的测试中,我无法让这个特定情况发生,所以我可以确认我的修复工作。即使启用了iCloud Photo Library并优化了存储,我仍然可以获得图像,但永远不会获得PHImageResultIsInCloudKey

有没有办法强制出现图片不在设备中并且必须从云端加载的情况?

1 个答案:

答案 0 :(得分:3)

我在使用PHAssets时遇到了类似的问题,即用户设备上的图片库非常庞大(意味着很多照片不在设备上),这会导致性能问题。

为了复制这些条件,我制作了https://github.com/jrturton/DiskFiller,您可能会猜到,它会将大量文件写入设备,直到文件满为止,这会触发iCloud照片的“优化存储”加入,将较旧的照片移到云端。也许可以帮上忙。

如果有的话,最好在测试设备上运行它:)