gpt4 book ai didi

iOS 从文件中读取

转载 作者:行者123 更新时间:2023-11-28 12:29:19 24 4
gpt4 key购买 nike

我正在尝试让我的 iPhone 应用程序将文件中的文本加载到字符串数组中,每个数组元素从文件中加载 1 行。

我使用 sublime text 创建了一个文本文件形式的输入文件。我将文件(位于我的项目目录内的一个文件夹内)拖到 xCode 到项目层次结构中同一位置的文件夹中。

我还尝试将其添加为 bundle (通过复制文件夹并使用 .bundle 扩展名重命名),但无济于事。目前,我的应用程序在 2 个位置有该文件(显然我打算删除不需要的版本,但我不确定这将如何工作,所以我暂时保留了它)。

我写了一个函数,我想读取我的文件,并将其内容组装成一个数组:

func readFromFile(filename: String) -> [String]? {

guard let theFile = Bundle.main.path( forResource: fileName, ofType: "txt") else {
return nil // ALWAYS returns nil here: Seems 'filename' can't be found?????
}

do { // Extract the file contents, and return them as a split string array
let fileContents = try String(contentsOfFile: theFile)
return fileContents.components(separatedBy: "\n")

} catch _ as NSError {
return nil
}
}

就目前而言,该函数始终在代码中注释的位置返回 nil。

我已经为此工作了大约 6 个小时(并尝试了我可以在 StackOverflow、谷歌等网站上找到的所有建议),但我对 Swift 的各种版本和 iOS 的复杂性之间的差异越来越感到困惑发展。我似乎无法在任何地方找到一致的答案。我已经查看了 apple 文档,但它的级别太高了,没有示例代码让我在快速的初学者水平上无法理解。

我也尝试用“.txt”扩展名命名文件,但这也没有帮助。

最佳答案

如果您要将文件称为 forResource: "alert01", ofType: "txt",则该文件一定要命名为 alert01.txt

从 bundle 中加载将不起作用。该文件需要是项目的一部分,如第一个条目所示。

但是,您的代码将无法运行,因为您已经创建了一个文件夹引用。这意味着正在将文件夹 PanicAlertFiles 及其所有内容复制到您的包中。您的代码将需要深入到该文件夹​​中才能检索您的文件。使用 path(forResource:ofType:inDirectory:)这样做,或者(如果您不想明确地编写文件名)获取文件夹,然后使用 FileManager 检查其内容。

关于iOS 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42537642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com