如何将数据文件与 macOS 终端应用程序捆绑在一起?

问题描述 投票:0回答:1

我正在尝试将文本文件与我正在构建的 macOS 命令行工具捆绑在一起。我已将该文件添加到项目中,但似乎无法从代码访问它。我的项目如下所示:

Image of the project explorer, with small_names.txt adjacent to main.swift

我用来尝试加载该数据的函数如下所示:

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?

谢谢。

swift xcode macos terminal
1个回答
0
投票

在 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")

我花了很多时间来解决这个问题^^

© www.soinside.com 2019 - 2024. All rights reserved.