Чтение короткого текстового файла в строку в swift

Мне нужно прочитать содержимое короткого текстового файла в моей программе 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 "в вызове". Это имеет для меня нулевой смысл, может быть, кто-то еще может понять это?

Ответы

Ответ 1

На первый взгляд я бы сказал, что вам нужно передать переменную err по ссылке:

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

Ответ 2

После новой обработки ошибок, введенной в iOS 9/Swift 2, решение для этого, которое работает для меня, это:

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

текст будет содержать содержимое файла или будет пустым в случае ошибки.

Ответ 3

Я смог разрешить ошибку, используя ее следующим образом:

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

или если вы хотите использовать отчет об ошибках, то

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