资源路径 returns 无文件路径,尽管文件位于 Documents 目录中

Path for resource returns nil file path despite file is in Documents directory

当我运行这段代码并添加断点时:

var pathFor = Bundle.main.path(forResource: imageName, ofType: "png")
print("breakpoint added here")

我看到 nil 变量的 pathFor 值。

但是,如果我根据上下文检查我的应用程序包中的文件是否存在(使用 XCode -> 设备 -> 设备名称 -> 下载容器 -> 显示包内容),我可以在 文档目录:

我做错了什么?


更新:

我已按照 answer 中的建议修改了代码。

很遗憾,我无法根据路径实例化图像。

请看这里:

您正在 Bundle(即编译时嵌入的文件)中查找您放入文档文件夹中的文件。那是行不通的。

您的文件在这里:

if let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true).first {
        if let path = NSURL(fileURLWithPath: dir).appendingPathComponent("file.html") {
                print(path as Any)
                if  let imageData = NSData(contentsOf: path!) {
                     let image = UIImage(data:imageData as Data)

    }
 }

另一个排列,但我个人会这样做:

let fileURL = try! FileManager.default
    .url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
    .appendingPathComponent(imageName)
    .appendingPathExtension("png")
let image = UIImage(contentsOfFile: fileURL.path)