Swift:索引超出二维数组的范围



我正在使用字符串的二维数组。当我初始化它时,我用默认值字符串填充它。当我想从中访问元素时,出现超出范围的错误

class MyClass: UIViewController, {
var bodies = [[String]]()
override func viewDidLoad() {
super.viewDidLoad()
setBodies()
if isBodiesEmpty() {
//setRefreshButton()
}
}
private func setBodies() {
var bodies = Array(repeating: Array(repeating: "default", count: 6), count: 4)
...
bodies[2][0] = "string 2 0"
bodies[2][1] = "string 2 1"
...
}
private func isBodiesEmpty() -> Bool {
if bodies[2][0].isEmpty {
return true
}
if bodies[2][0].contains("default"){ 
return true
}
return false
}
}

if bodies[2][0].isEmpty 

if bodies[2][0].contains("default")

抛出"线程 1:致命错误:索引超出范围">

然而,如果我打印数组的一个元素,它可以工作:

print("bodies[2][0] =="+bodies[2][0])

显示:"字符串 2 0">

一定有什么琐碎的事情我忽略了,但我不知道是什么

是的,这是一件微不足道的事情,也是一个非常常见的错误。此行

var bodies = Array(repeating: Array(repeating: "default", count: 6), count: 4)

创建一个本地数组bodies该数组不是属性bodies。只需删除var

bodies = Array(repeating: Array(repeating: "default", count: 6), count: 4)

最新更新