我正在尝试将元素排序为我用这种方式构建的二维数组,但是当代码到达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++
}}
答案 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]