将值添加到2D Array String值Swift2

时间:2015-10-29 10:58:09

标签: arrays multidimensional-array swift2

下面我有一个NSMutableArray类型的常量dict,用于存储从JSON中提取的数据。我已经测试过,在引用变量name时,我能够提取出我需要的东西。

虽然我知道附加一个普通数组会是myArrayValue.append("String"),但是我用我的2D数组尝试了相同的方法它不起作用。

我对Swift2编程很新,请详细解释。提前谢谢!

let dict: NSMutableArray!=(try! NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)) as! NSMutableArray

var arrayObject : [AnyObject]
var arrayName : [[String]] = [[]]
var name : String

for var x=0; x<dict.count; x++ {
        arrayObject = dict[x].allValues
    for var y=0; y<5; y++ {
        name = arrayObject[y].description as String
        arrayName[x][y].append(name)
    }
}

2 个答案:

答案 0 :(得分:2)

我不会自己修复你的代码,工作太多了,我只是告诉你需要什么:

  • 如果你实际上不需要它们,你不想再使用Foundation的对象,使用Swift数组。

  • 不要将“dict”称为数组。

  • 请勿强行打开您的值...使用if let等技术安全展开。

  • 请勿强制使用try!,请使用Do-Catch和Try,并处理错误。

  • 如果您不需要此功能,请不要使用MutableContainers。使用空数组代替传递无选项。

  • 不要用不需要用括号括起来的括号内包裹。

  • 当您可以使用像for item in array { print(item) }这样的Swift范例时,请不要使用手动索引循环。

  • 如果arrayName[x][y]为零,则
  • arrayName[x]无效。

完成这些修复和改进后,您当前的问题将会消失,因为您的代码将更易于遵循和维护。

答案 1 :(得分:0)

您的帖子难以阅读,您没有很好地解释您的问题,我想它应该被低估。更新您的问题,如果我的答案不正确,希望,这有帮助:

let JSONDict: [[String: AnyObject]] = [["name" : "value1"], ["name" : "value2"]];
var arrayName = [String]()
for dict in JSONDict {
    if let value = dict["name"] as? String {
       arrayName.append(value)
    }
}