我需要在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'在电话"。这对我来说没有任何意义,也许其他人可以解决这个问题?
答案 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)