PHImageResultIsInCloudKey

PHImageResultIsInCloudKey

我的应用程序有一个自定义照片选择器,该选择器使用“照片”框架浏览相册并选择照片。我隔离了一个非常具体的错误的报告,该错误仅在用户(a)打开iCloud照片库,(b)在其“照片”设置中打开“优化存储”并且(c)已打开特定相册和/或图像时才发生从设备上移开。

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

但是,在我自己的测试中,我只是无法实现这种特定情况,因此我可以确认我的修复程序有效。即使启用了iCloud照片库并启用了“优化存储”,我仍然始终会获得图像,却从未获得PHImageResultIsInCloudKey

有没有一种方法可以强制关闭设备镜像并且必须从云中加载镜像?

最佳答案

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

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

如果您有一个,可能最好在测试设备上运行它:)

09-25 19:11