如何在Swift 3中将文档目录中的图像显示到UIImageView?

时间:2016-08-18 22:09:05

标签: swift3

以下Swift 2示例给出了此错误:

  

String类型的值没有成员' stringByAppendingPathComponent'

Screenshot of Error

Swift 3需要更改什么?

2 个答案:

答案 0 :(得分:5)

Apple试图将所有人从路径字符串范式转移到URL(即file:///path/to/file.text)。 Swift API几乎删除了所有path,转而使用URL

您仍然可以在Objective-C(NSString)中找到它:

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let getImagePath = NSString.path(withComponents: [paths, "fileName"])

Swifty方式越多:

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = URL(fileURLWithPath: paths).appendingPathComponent("fileName")

答案 1 :(得分:1)

我个人喜欢从App代表处获取此值。把这段代码(像普通函数一样独立)放入AppDelegate.swift。

lazy var applicationDocumentsDirectory: URL = {
    let urls = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)
    return urls[urls.count-1]
}()

因此,在所有文件中,您都可以这样使用它:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let imageUrl = appDelegate.applicationDocumentsDirectory.appendingPathComponent("YourFileName")
    let imageUrlString = imageUrl.urlString //if String is needed