Arrays 如何在Swift中读取此多维数组?
我有一个数组,用于存储swift中“块”上的一些次要数据 我以前有三本字典,分别叫做blockNames、blockTypes和blockImages。然而,我想把一切都放在一个地方。我想使用下面的格式,但我假设我可以像这样阅读它<代码>块数据[0.0][“图像”]获取块0.0的图像。但是,它将数组定义为双精度数组,并将其中的字典定义为NSObject 这就是我所说的阵列Arrays 如何在Swift中读取此多维数组?,arrays,swift,multidimensional-array,Arrays,Swift,Multidimensional Array,我有一个数组,用于存储swift中“块”上的一些次要数据 我以前有三本字典,分别叫做blockNames、blockTypes和blockImages。然而,我想把一切都放在一个地方。我想使用下面的格式,但我假设我可以像这样阅读它块数据[0.0][“图像”]获取块0.0的图像。但是,它将数组定义为双精度数组,并将其中的字典定义为NSObject 这就是我所说的阵列 let blockData = [ // ===== 0.0 - Air ===== 0.0:[ "
let blockData = [
// ===== 0.0 - Air =====
0.0:[
"name":"Air",
"image":"0.0.png",
"type":"custom"
],
0.1:[
"name":"barrier",
"image":"barrier",
"type":"custom"
],
// ===== 1.0 - Dirt =====
1.0:[
"name":"Dirt - Center",
"image":"1.0.png",
"type":"solid"
],
1.1:[
"name":"Dirt width Grass - Center",
"image":"1.1.png",
"type":"solid"
],
1.2:[
"name":"Dirt width Grass - Left",
"image":"1.2.png",
"type":"solid"
],
1.3:[
"name":"Dirt width Grass - Right",
"image":"1.3.png",
"type":"solid"
],
1.4:[
"name":"Dirt - Left",
"image":"1.4.png",
"type":"solid"
],
1.5:[
"name":"Dirt - Right",
"image":"1.5.png",
"type":"solid"
],
1.6:[
"name":"Dirt with Flat Top - Center",
"image":"1.6.png",
"type":"solid"
],
1.7:[
"name":"Dirt with Flat Top - Left",
"image":"1.7.png",
"type":"solid"
],
1.8:[
"name":"Dirt with Flat Top - Right",
"image":"1.8.png",
"type":"solid"
],
1.9:[
"name":"Dirt - Center",
"image":"1.9.png",
"type":"solid"
],
1.11:[
"name":"Dirt - Bottom Center",
"image":"1.11.png",
"type":"solid"
],
...
]
我想阅读如下数组:
let blockID: CGFloat = 0.0
let blockType = blockData[Float(blockID)]["type"]
谢谢。问题似乎是,您将从
块数据[0.0]
中获得一个可选值作为回报您需要使用
if let
语句或强制展开来展开该可选项
let blockData = [
// ===== 0.0 - Air =====
0.0:[
"name":"Air",
"image":"0.0.png",
"type":"custom"
],
0.1:[
"name":"barrier",
"image":"barrier",
"type":"custom"
],
// ===== 1.0 - Dirt =====
1.0:[
"name":"Dirt - Center",
"image":"1.0.png",
"type":"solid"
],
1.1:[
"name":"Dirt width Grass - Center",
"image":"1.1.png",
"type":"solid"
],
1.2:[
"name":"Dirt width Grass - Left",
"image":"1.2.png",
"type":"solid"
]
]
blockData[0.0]!["type"]
在swift 2.0中工作得非常好如果元素不是按位置标识的,它就不是数组。@ScottHunter我相信OP来自PhP,其中(有序的)字典被称为数组(我知道这很奇怪)@Kametrixom在回答您的评论时,我确实来自PhP。但是,您知道如何将字典声明为String:String而不是NSObject吗?数组的声明似乎是[Double:NSObject],因此我无法使用字符串获取字典。有什么方法可以解决这个问题吗?如果让data=blockData[0.0]为,则键入cast您的NSObject
?[String:String]
有没有办法在第一个declarton中强制转换此值?我有一个问题,因为我使用float“1.1,1.2”作为变量,我无法使用double来获取数据。有办法解决这个问题吗?