【发布时间】:2016-04-17 22:31:44
【问题描述】:
刚接触 Swift,但用其他语言(Java、C、Python...)编写了大量代码,我对简单地读取文件似乎很困难感到沮丧。
我已经阅读了许多帖子,例如 this one,但无法让他们的建议发挥作用。另请阅读this post 和this one,但对于如此简单的任务来说,解决方案似乎很长,而且对我也不起作用。
这是一个简单的版本:
import Foundation
let path = "./data.txt"
let fileContents = String(contentsOfFile: path, encoding: NSUTF8StringEncoding)
print(fileContents) // prints out: ("./data.txt", 4)
let lines : [String] = fileContents.componentsSeparatedByString("\n") // error: value of type 'String' has no member 'componentsSeparatedByString'
现在,根据我上面链接的第一篇文章,我希望这会将指定的文件读入单个字符串,然后将字符串拆分为换行符,并给我一个数组,其中每行作为一个元素。相反,当我打印 fileContents 时,我得到了某种类型的元组,而不是我期望的字符串。而当我尝试拆分字符串时,显然该函数不存在。
有人可以解释我缺少什么并告诉我一种将文件中的行读入字符串数组的简短方法吗?我正在阅读documentation,但甚至找不到第 3 行中 String() 调用的解释或第 5 行中对 componentsSeparatedByString() 的引用,所以我完全放弃了第一篇文章中的建议;任何指针都非常感谢。
【问题讨论】:
-
String 返回一个可选的字符串(你的元组)你需要解开它
-
如前所述,我已阅读该帖子,但在运行已接受的答案时出现错误。除此之外,它没有解决拆分成数组的问题。
-
你能举一个正确解包的例子吗?我尝试 print(fileContents!) 但这会导致错误
-
你的文件在哪里?
-
你应该使用 String 而不是 NSString