我正在尝试将文本文件与我正在构建的 macOS 命令行工具捆绑在一起。我已将该文件添加到项目中,但似乎无法从代码访问它。我的项目如下所示:
我用来尝试加载该数据的函数如下所示:
func loadFile() -> [String] {
let fileName = "small_names"
guard let url = Bundle.main.url(forResource: fileName, withExtension: "txt") else {
print("couldn't open \(fileName)")
return []
}
// load that URL
}
但是,
url
似乎始终是nil
。当我运行该程序时,我会打印出 couldn't open small_names
。
我需要做什么才能将此文件与我的程序一起发送?如何从代码中获取其 url?
谢谢。
在 macOS 命令行工具项目中,我也无法将文件添加到捆绑包中 所以解决办法很简单,直接加载文件即可
func loadFile() -> Data {
lazy var data = Data()
let filePath = URL(fileURLWithPath:"/Users/YourProject/fileName.txt")
do {
data = try Data(contentsOf: filePath)
return data
} catch {
print(error)
}
return data
}
let data = loadFile()
//then you can do everything you want with data: for example decode it to String and printing
print(String(data: data, encoding: .utf8) ?? "none")
我花了很多时间来解决这个问题^^