如何使用for循环在Swift中添加3D数组中的元素

时间:2016-04-07 11:38:19

标签: arrays swift

我有一个3D数组,我就像这样初始化它,

 var contexts:[[[AnyObject]]] = []

我有两个数组,一个是包含String值的2D数组,另一个是包含Double值的2D数组。

stringValuesOfData = [["1 GB", "300 MB", "724 MB"], ["10 GB", "0 MB", "10 GB"]] 
byteValuesOfData = [[1073741824.0, 314572800.0, 759169024.0],[10737418240.0, 0.0, 10737418240.0]]

现在我想将这两个数组元素添加到像这样

的上下文数组中
contexts =[[["1 GB", "300 MB", "724 MB"],[1073741824.0, 314572800.0, 759169024.0]], [[1073741824.0, 314572800.0, 759169024.0],[10737418240.0, 0.0, 10737418240.0]]]

我该怎么做?

我试过这样,它给了我错误

for i in 0..<self.stringValuesOfData.count {
 contexts[i] = [[stringValuesOfData[i],byteValuesOfData[i]]]
  }

2 个答案:

答案 0 :(得分:0)

这里 contexts [i] 你试图访问不存在的上下文对象,而不是这样做追加新数据:

&#xA;&#xA;
  for i in 0 ..&lt; stringValuesOfData.count {&#xA; contexts.append([[stringValuesOfData [I],byteValuesOfData [I]]])&#XA; }&#XA;  
&#XA;

答案 1 :(得分:0)

这很可能是一个类型转换问题。

var contexts:[[[AnyObject]]] = []


let stringValuesOfData:[[AnyObject]] = [["1 GB", "300 MB", "724 MB"], ["10 GB", "0 MB", "10 GB"]]
let byteValuesOfData:[[AnyObject]] = [[1073741824.0, 314572800.0, 759169024.0],[10737418240.0, 0.0, 10737418240.0]]

for i in stringValuesOfData.indices {
    contexts.append([ stringValuesOfData[i], byteValuesOfData[i] ])    
}

在操场上,这给出了:

contexts