0

我刚刚完成了我的 swift 应用程序的最后润色。但是在升级到 Beta 7 后,它给了我“ContentOfFile”字符串的错误。谁能帮我理解我该如何解决这个问题?

这就是我的 ATM。

//Reads the Text File
    if var path = NSBundle.mainBundle().pathForResource("Chapters", ofType: "txt"){

        //Reads the Text File into one Huge String
        var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)

            //sets String content of the Text File as an Array. With each string start at \n (new line)
            if var content = (data){

                //from the mass string of data from the text file, Each chapter content is seperated by #
                var Chapters: [String] = content.componentsSeparatedByString("@")

                //without removing index in the beginning there will be an extra element printed in the array.
                Chapters.removeAtIndex(0)

错误消息:无法使用类型为“(contentsOfFile:String,编码:UInt,错误:NilLiteralConvertible)”的参数列表调用类型“String”的初始化程序

4

1 回答 1

1

您需要实现 do try catch 错误处理。试试这样:

编辑/更新:

斯威夫特 3或更高版本

if let fileURL = Bundle.main.url(forResource: "Chapters", withExtension: "txt") {
    do {
        let string = try String(contentsOf: fileURL, encoding: .utf8)
        var chapters = string.components(separatedBy: "@")
        chapters.removeFirst()
    } catch {
        print(error)
    }
}
于 2015-09-16T01:33:47.443 回答