0

Swift アプリの最後の仕上げを終えたところです。しかし、ベータ 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, encoding: UInt, error: NilLiteralConvertible)' の引数リストでタイプ 'String' の初期化子を呼び出すことはできません

4

1 に答える 1

1

do try catch エラー処理を実装する必要があります。このようにしてみてください:

編集/更新:

Swift3以降

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 に答える