gpt4 book ai didi

ios - 从数组加载数据时遇到问题

转载 作者:行者123 更新时间:2023-11-30 14:07:24 25 4
gpt4 key购买 nike

在 swift 中,我的数组如下:

var storedLevels = [
1:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 6, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 7, 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

2:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
]

我需要能够将数组 storedLevels[1] 加载到变量中,然后循环遍历变量中的值。

此时我已经一切正常,但是我必须在 storedValues[X] 中显式将 1 设置为 X,然后循环该代码。

这是我正在使用的功能:

func loadLevel(level: Float) {
var x: Int = 0
var y: Int = 0

let blocks = storedLevels[1]

for var i: CGFloat = 0; i <= (gBlockCountY); i += 1 {
y = Int(i)
for var i: CGFloat = 0; i <= (gBlockCountX-1); i += 1 {
x = Int(i)

var blockCountToTimes: CGFloat = CGFloat(y)-1
if blockCountToTimes < 0 {
blockCountToTimes = 0
}
let blockNumber = (gBlockCountX * blockCountToTimes) + CGFloat(x)

if let block = blocks?[Int(blockNumber)] {
addBlockToGrid(CGFloat(block), x: CGFloat(x), y: CGFloat(y))
} else {
addBlockToGrid(1, x: CGFloat(x), y: CGFloat(y))
}
}
}
}

如何让 letblocks =storedLevels[1] 使用传递给函数的值 (level: Float) 来替换 1?

最佳答案

storedLevels(Int, [Int]) 类型的字典,而不是数组。我不知道为什么你需要有 key (因此使它成为一本字典)。这也很好:

var storedLevels = [ [0, 0, 0, ...], [1, 1, 1, ...] ]
let blocks = storedLevels[Int(level) - 1]

现在回到你的字典:你的键是Int类型,但levelFloat类型。能有1.5级吗?如果您想使用字典范例,请将 level 转换为 Int:

let blocks = storedLevels[Int(level)]

关于ios - 从数组加载数据时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32193769/

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