在swift中将短文本文件读取到字符串

时间:2014-10-26 13:10:08

标签: swift nsstring

我需要在Swift程序中读取短文本文件的内容。我这样做了:

var err: NSError?
let bundle = NSBundle.mainBundle()
let path = bundle.pathForResource("cards", ofType: "ini")
let content = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil)

我的问题是我无法使用错误报告。如果我将最后一行更改为:

let content = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: err)

编译器抱怨"额外参数' contentsOfFile'在电话"。这对我来说没有任何意义,也许其他人可以解决这个问题?

3 个答案:

答案 0 :(得分:18)

在iOS 9 / Swift 2中引入新的错误处理之后,对我有用的解决方案是:

let fileLocation = NSBundle.mainBundle().pathForResource("filename", ofType: "txt")!
let text : String
do
{
    text = try String(contentsOfFile: fileLocation)
}
catch
{
    text = ""
}

文本将包含文件内容,或者在出现错误时为空。

答案 1 :(得分:14)

乍一看,我要说你必须通过引用传递err变量:

let content = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: &err)

答案 2 :(得分:-1)

我能够通过这种方式使用它来解决错误:

let content = String.stringWithContentsOfFile(path!, encoding: NSUTF8StringEncoding, error: nil)

或者如果想使用错误报告那么

var err: NSError?
let content = String.stringWithContentsOfFile(path!, encoding: NSUTF8StringEncoding, error: &err)