swift - 在 Swift 中缓存图像?

标签 swift caching

每次用户访问特定 View 时,我都会下载并显示它们。为了提高效率,我想开始缓存,而不是从数据库中获取用户已经下载的图像。

根据我的研究,我发现了一堆可以为您处理缓存的 Swift 库,例如 HanekeSwift , KingFisher , 和 Nuke .我想知道使用这些库之一与仅将图像下载到 Core Data 之间有什么区别。

据我所知,当用户第一次下载图片时,我可以将它们保存到 Core Data 并在下次通过 key 检查它们是否存在。使用这些库之一有什么好处吗?

最佳答案

您不应该将图像保存到核心数据中。您应该将它们保存到文件中,然后如果需要,您可以将路径或文件名或有关图像的其他属性存储在核心数据中。您可以使用以下代码将图像保存到您的应用程序文档目录中。

let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as String

if let filePath = dir.stringByAddingPathComponent("filename.png"){
  try? UIImagePNGRepresentation(image)?.write(to: URL(fileURLWithPath: filePath))
}

如果要保存到子文件夹,只需使用 FileManager 确保子文件夹已创建,否则创建它。

关于swift - 在 Swift 中缓存图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866790/

相关文章:

swift - 将格式化字符串附加到 UITextView 中已格式化的字符串中?

ios - 在使用 LargeTitle 和带有 TableView 的分段控件时遇到问题

swift - Tables NSTabViewController

caching - 我是否需要使用RedisLocks(ServiceStack.Redis)

PHP数组缓存

python-3.x - gitlab-ci 的缓存虚拟环境

ios - 如何使用swift获取appdelegate中的当前位置

swift - UISwipeGestureRecognizer 导致抖动

php - 在 yii2 中使用缓存时呈现动态 csrf 隐藏输入

iphone - 当服务器上的图像文件更改时,我的应用程序中的 SDWebImage 缓存图像会发生什么情况?