Swift数组init:data [section] [row]

时间:2016-11-22 15:48:20

标签: arrays swift dictionary swift3

在Swift中,我将var定义为:

var data : [[[String : Any]]] = [[[:]]]

然后初始化:

    for section in 0...1 {
        for row in 0...19 {
            let streamer = [
                "name" : "abcdef"
            ]
            data[section][row] = streamer
        }
    }

但是我为索引fatal error: Index out of range.获得data[0][1],但索引data[0][0]没有错误。

有人知道我为什么会收到这个错误吗?

1 个答案:

答案 0 :(得分:1)

我看到了问题,出于某种原因我认为swift会在我通过下标访问它时自动插入一个节和一行,但似乎情况并非如此,所以我将我的init更改为:

       for sectionIndex in 0...1 {
            var section : [[String : Any]] = [[:]]
            for rowIndex in 0...19 {
                let streamer = [
                    "name" : "abcdef"
                ]
                section.insert(streamer, at: rowIndex)
            }
            data.insert(section, at: sectionIndex)
        }