创建一个类型为string的固定大小的三维数组

时间:2017-12-25 13:57:04

标签: swift

我正在尝试在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'类型的值转换为预期的元素类型字符串

2 个答案:

答案 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