在Swift 3.0中保存和检索图像

时间:2017-02-24 23:00:21

标签: swift

我对Swift保存数据和检索数据的所有不同可能性感到困惑。通过userDefaults保存和检索数据很简单,但是为了存储大量图像,这不是最好的方法。然后是核心数据,我认为这很复杂,可用于这么简单的任务。我继续阅读有关DocumentDirectory的内容,我认为这是一种保存和检索数据的好方法。但是,所有教程大多来自swift 2.0及以下版本,我读不太清楚。文档目录是存储和检索图像的最佳方式吗?我正在制作一个在线应用程序,其中包含从用户下载图像。但是,同一用户的图像都是相同的,所以我想离线存储图像以节省一些带宽。

我想使用我可以在String中指定的路径来存储和检索图像。每个用户都有一个唯一的标识符,我想将其用作路径。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

保存在文件系统中绝对是在这种情况下使用的最佳方法。

看看这个答案:

https://stackoverflow.com/a/39896556/5109911

if let data = UIImageJPEGRepresentation(image, 0.8) {
    let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
    try? data.write(to: filename)
}

func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let documentsDirectory = paths[0]
    return documentsDirectory
}

其中image是您的UIImage