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



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

欢迎任何帮助

干杯曼努埃尔

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

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

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

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

我不得不不同意你的看法。您必须了解本地缓存的工作原理,以便:

1 - 根据您在应用程序中执行的操作,做出一些决定,例如是否应该自己缓存照片

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

最新更新