"索引超出范围错误"在尝试从文本文件中读取时

时间:2017-10-03 22:20:37

标签: ios swift

我在使用此代码时遇到了一些问题。我试图从一个名为" level1"的文本文件中读取。然后逐行进行,并使用.enumerated()函数将每一行添加到数组中。但是,当我尝试使用索引来填充数组时,当我从0开始打印它时,它会崩溃并给我一个错误,它正在访问超出范围的东西?任何帮助将不胜感激。

var clueString = ""
var solutionString = ""
var letterBits = [String]()
var solutions = [String]()

var gameData: [String] = [String]()

func loadLevel() -> [String] {
    if let levelFilePath = Bundle.main.path(forResource: "level\(1)", ofType: "txt"){
        if let levelContents = try? String(contentsOfFile: levelFilePath) {
            var lines = levelContents.components(separatedBy: "\n")
            lines = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: lines) as! [String]

            for (index, line) in lines.enumerated() {
                let parts = line.components(separatedBy: ": ")
                let answer = parts[0]
                let clue = parts[1]

                gameData[index].append(answer)
            }
        }
    }
    return gameData
}

1 个答案:

答案 0 :(得分:0)

为了在Array的末尾添加单个元素,您需要在Array本身上调用append(_:),而不是在它应该进入的元素上调用。

因此,您的代码gameData[index].append(answer)需要更改为gameData.append(answer)

相关问题