我正在尝试在Swift中创建一个固定大小的3维数组,其数据类型为字符串,如下所示:
[
{
"no":1,
"name":"ELECTRONICS",
"depth":0,
"child_nodes":[
{
"no":2,
"name":"TELEVISIONS",
"depth":1
"child_nodes":[
{
"no":3,
"name":"TUBE",
"depth":2
},
...
]
},
{
"no":6,
"name":"PORTABLE ELECTRONICS",
"depth":1
"child_nodes":[ ... ]
}
]
}
]
但它给出了错误:
无法将'Int'类型的值转换为预期的元素类型字符串
答案 0 :(得分:1)
从您的问题标题中,您尝试使用数据类型[[[String]]]
创建3d数组,并在您的问题详细信息中为其分配Int
值,这在swift中是不可能的。这就是你收到错误的原因。因为您的3dArray
对象需要String
值
您可以通过以下方式指定String
值:
var yourArr: [[[String]]] = [[["50"]],[["50"]],[["50"]]]
或者,如果你想制作Int
数组,你可以这样做:
var yourArr: [[[Int]]] = [[[50]],[[50]],[[50]]]
注意:强>
由于@Martin R建议变量名称不能以数字开头。
答案 1 :(得分:0)
在Swift中没有创建多维数组的典型方法。
但是,您可以创建一个仅包含String
个数组的数组,然后追加3个不同的String
数组。请找到以下代码:
var array = [[String]]()
array.append([String]())
array.append([String]())
array.append([String]())
最后,你的阵列将以这种方式看待:
[[], [], []]
或者您可以这样创建相同的数组:
var array:[[String]] = [["50"],["50"],["50"]]
但请记住,"50"
是字符串,它们是这些数组的内容,而不是它们的大小。
如果您想拥有固定大小的数组,那么您必须使用某些第三方解决方案,例如this one。