iOS Swift应用程序崩溃:数组索引超出范围



当我运行游戏时,它通常会在第19面墙左右崩溃,并继续告诉我"数组索引超出范围"。我不太喜欢斯威夫特,到目前为止已经花了一个小时没有成功。如何解决错误?

import Foundation
import UIKit
let kMLGroundHeight: CGFloat = 20.0
let kDefaultXToMovePerSecond: CGFloat = 320.0
//CollisionDetection
let heroCategory: UInt32 = 0x1 << 0
let wallCategory: UInt32 = 0x1 << 1
//Levels
let kLevelGenerationTimes: [NSTimeInterval] = [0.8, 0.7, 0.6, 0.4, 0.3]
let kNumberOfPointsPerLevel = 5

假设你有一个数组,里面只有一个对象:

let arr = ["hello"]

该数组的唯一有效索引是0。arr[0]是合法的。arr[1]不是。数组有1个元素,但索引号为0。

对于任何数组都是如此。每个数组都包含一定数量的元素。它可能是0个元素,在这种情况下,没有索引是合法的。可能是3在这种情况下,您可以通过索引引用数组的元素数字0 1 2。等等......这是所有。这是规则。你不能使用其他索引号,否则会崩溃。

所以错误信息只是告诉你你犯了那个错误。你有一个数组kLevelGenerationTimes,它有5个元素。然后你访问的元素在我刚才解释过的边界之外。

这就是你需要知道的。错误消息告诉您程序中的错误。现在你可以修复了。

最新更新