尽管文件位于Documents目录中,但资源路径返回nil文件路径

时间:2017-01-26 15:53:45

标签: ios swift path bundle filepath

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

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

我看到 pathFor 变量的 nil 值。

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

enter image description here

我做错了什么?

更新

我已根据回复中的建议修改了代码。

不幸的是,我无法根据路径实例化图像。

请看这里:

enter image description here

2 个答案:

答案 0 :(得分:1)

您正在查看文件夹中放置的文件的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)

    }
 }

答案 1 :(得分:0)

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

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