为什么这个数组没有索引?

时间:2015-07-16 14:59:50

标签: ios arrays swift

我正在尝试将元素排序为我用这种方式构建的二维数组,但是当代码到达2D数组时,我得到一个错误:“数组超出索引”。

var categoryTempArray: [[ProductCatalogue]] = []

func sortinOut(){
    var i = 0
    var j = 0
        for x in categories{
            for y in array{
                if x == String(stringInterpolationSegment: y.categoryName){
                categoryTempArray[i].append(y)
                //categoryTempArray[i][j] = y tried this too
                    j++
                }
            }
            i++
        }}

2 个答案:

答案 0 :(得分:2)

你应该在添加第[j]个元素之前初始化第[i]个元素。

您可以对不存在的项调用append()函数,因为categoryTempArray数组中不存在任何项,因此索引超出范围。

答案 1 :(得分:0)

这最终有效

for x in categories{
                for y in array{
                    if x == String(stringInterpolationSegment: y.categoryName){
                        var tempArray: [ProductCatalogue] = [y]
                    categoryTempArray.append(tempArray)
                        j++
                    }
                }
                i++
            }

然后我可以使用类似这个类的TempArray [i] [j]