当我运行此代码并添加断点时:
var pathFor = Bundle.main.path(forResource: imageName, ofType: "png")
print("breakpoint added here")
我看到 pathFor 变量的 nil 值。
但是,如果我在我的应用程序Bundle中使用上下文检查文件(使用XCode - >设备 - >设备名称 - >下载容器 - >显示包内容),我可以在中看到它文件目录:
我做错了什么?
更新:
我已根据回复中的建议修改了代码。
不幸的是,我无法根据路径实例化图像。
请看这里:
答案 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)