gpt4 book ai didi

arrays - Swift 二维字符串数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:46:13 24 4
gpt4 key购买 nike

我想为选取器创建一个包含两个字符串数组的数组。每个数组需要为 1 - 30(字符串,而不是整数)

我认为我这样做是对的,但 Xcode 不同意:

var scorePickerArray: [[String]] = []

for var i: Int = 0; i < 2; i++
{
for var j: Int = 0; j < 30; j++
{
scorePickerArray[i][j] = String(j + 1)
}
}

我得到了 scorePickerArray[0][0] 的“数组索引越界”

我做错了什么? (可能是非常明显的东西)

最佳答案

你的版本没有用,因为当你请求scorePickerArray[0][0]时,第二个维度还没有创建,所以它是“越界的”,也就是说 scorePickerArray[0] 还没有成员,您不能使用下标 ([0][0]) 访问它们。

解决方法:

var scorePickerArray = [[String]]()

var temp = [String]()

for i in 1...30 {
temp.append("\(i)")
}

for i in 0...1 {
scorePickerArray.append(temp)
}

结果:

[["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"], ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"]]


Swift 2 更新

Swift 2 的更好解决方案是使用从范围生成的 Int 数组(每个 Int 映射到 String)而不是循环:

let innerArray = Array(1...30).map { String($0) }

然后像这样重复:

let scorePickerArray = Array(count:2, repeatedValue: innerArray)

关于arrays - Swift 二维字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com