0

我在应用程序的文档目录中保存了一个 Test.txt 文件。在Test.txt文件的每一行中,有几个名字一一保存,像这样:

Tom
Jack
Jerry
Jennifer
Lynn

我想将这些名称添加到数组中,如下所示:

var nameList = ["Tom", "Jack", "Jerry", "Jennifer", "Lynn"]

有什么办法让它工作吗?

我有以下代码,但它会将名称视为一个字符串。

  if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
            let archiveURL = dir.appendingPathComponent("Test").appendingPathExtension("txt")

            do {

                try Data(textView.text.utf8).write(to: archiveURL)
            }

            catch {
                print("error")
            }

            do {
                namesPool = try! [String(contentsOf: archiveURL, encoding: .utf8)]
            }

        }

上面的代码将得到以下数组:

var nameList = ["Tom\nJack\nJerry\nJennifer\nLynn\n"]

任何建议,将不胜感激。

4

2 回答 2

0

您缺少最后一步,请使用以下方法将其分开:

let namesTogether = try! String(contentsOf: archiveURL, encoding: .utf8)
namesPool = namesTogether.components(separatedBy: "\n")
于 2017-10-22T08:31:36.107 回答
0

斯威夫特 4

// String with multiple names separated by end of line
let nameStr = try! String(contentsOf: archiveURL, encoding: .utf8)
// array of Substrings
let nameArray = nameStr.split(separator: "\n") 
// first name as String
let name = String(nameArray[0])

有关处理字符串的更多信息:字符串备忘单

于 2017-10-22T08:37:45.040 回答