迅速我有如下数组:
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))
}
}
}
}
如何使
let blocks = storedLevels[1]
使用传递给函数(level: Float
)的值替换1? 最佳答案
storedLevels
是类型(Int, [Int])
的字典,而不是数组。我不知道您为什么需要钥匙(因此使其成为字典)。这也可以:
var storedLevels = [ [0, 0, 0, ...], [1, 1, 1, ...] ]
let blocks = storedLevels[Int(level) - 1]
现在回到您的字典:您的密钥是
Int
类型,但level
是Float
。可以有1.5级吗?如果要使用字典范例,请将level
强制转换为Int
:let blocks = storedLevels[Int(level)]
关于ios - 无法从数组加载数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32193769/