我的应用程序有一个自定义照片选择器,该选择器使用“照片”框架浏览相册并选择照片。我隔离了一个非常具体的错误的报告,该错误仅在用户(a)打开iCloud照片库,(b)在其“照片”设置中打开“优化存储”并且(c)已打开特定相册和/或图像时才发生从设备上移开。
在这种情况下,似乎没有实际的图像返回到传递给PHCachingImageManager#requestImage
的闭包中。相反,根据我的收集,PHImageResultIsInCloudKey
字典中包含了info
,我需要将isNetworkAccessAllowed
设置为true来重新调用该请求。
但是,在我自己的测试中,我只是无法实现这种特定情况,因此我可以确认我的修复程序有效。即使启用了iCloud照片库并启用了“优化存储”,我仍然始终会获得图像,却从未获得PHImageResultIsInCloudKey
。
有没有一种方法可以强制关闭设备镜像并且必须从云中加载镜像?
最佳答案
我在使用PHAssets时遇到了类似的问题,即用户设备上的图片库非常庞大(意味着很多照片不在设备上),这会导致性能问题。
为了复制这些条件,我制作了https://github.com/jrturton/DiskFiller,您可能会猜到它会向设备中写入大量文件,直到它装满为止,这具有触发iCloud照片进入“优化存储”的副作用,将较旧的照片移至云端。也许可以帮上忙。
如果您有一个,可能最好在测试设备上运行它:)