iCloud 照片库 - 最初小于请求大小的图像的本地缓存

Posted

技术标签:

【中文标题】iCloud 照片库 - 最初小于请求大小的图像的本地缓存【英文标题】:iCloud Photo Library - local cache for images originally smaller than the requested size 【发布时间】:2015-01-19 14:46:09 【问题描述】:

我们有点困惑设备缓存是如何工作的,以及它是如何工作的。原始分辨率小于请求中指定的图像似乎根本没有被缓存,每次我们调用 RequestImageForAsset 看起来图像总是从云中提取。 当它发生时,它还显示了一个我们没有看到它记录的有趣行为。虽然 RequestImageForAsset 回调没有返回错误,但预期生成的 UIImage 为 nil。获取图像的唯一方法是使用更小的尺寸再次请求它。 显示此行为的照片显示在“照片应用程序”中,并带有一个白点。只有在通过双击强制放大后,该点才会消失,并且只有在那之后我们才能通过 RequestImageForAsset 正确请求它。

欢迎任何帮助

干杯 曼努埃尔

【问题讨论】:

【参考方案1】:

缓存行为(由于我的测试)取决于许多因素:

1) 如果用户在照片设置中设置了“优化存储”或“保留原件”

2) 设备上有多少可用空间。

简而言之:我不会假设任何缓存行为。只需使用 PhotoKit 提供的方法来请求资产的数据/图像。

【讨论】:

【参考方案2】:

我不得不不同意你的观点。您必须了解本地缓存的工作原理:

1 - 根据您在应用中所做的事情,做出一些决定,例如您是否应该自己缓存照片

2 - 了解错误和功能之间的区别。 Photokit 看起来不错。然而,它的实现已经显示出很多问题(真正的错误),例如从 8.0 beta 5 更改为最近添加的 8.0 发布主/相机胶卷,这暴露了一些内部混乱

【讨论】:

以上是关于iCloud 照片库 - 最初小于请求大小的图像的本地缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何快速获取 iCloud 图片 URL

具有优化 iPhone 存储的 PHAsset

怎么把照片缩小到100k以内

怎么调整照片大小

图片怎么压缩大小200k

照片框架中创建的相册中图像的 iCloud 同步