我在使用此代码时遇到了一些问题。我试图从一个名为" 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
}
答案 0 :(得分:0)
为了在Array
的末尾添加单个元素,您需要在Array
本身上调用append(_:)
,而不是在它应该进入的元素上调用。
因此,您的代码gameData[index].append(answer)
需要更改为gameData.append(answer)
。