iOS:在Swift 3中,如何从二维数组的一部分中删除n个最后一行?

iOS:在Swift 3中,如何从二维数组的一部分中删除n个最后一行?

问题描述:

我创建了一个二维数组,我想从一个节中删除n个最后一行。iOS:在Swift 3中,如何从二维数组的一部分中删除n个最后一行?

实施例:

var timeTable : [[Int]] = Array(repeating: Array(repeating: 0, count: 50), count: models.count) 

for i in (0..<models.count) 
    { 
    timeTable[i] = timeTable[i].dropLast(50 - models[i].slots.count) //=> problem: Cannot assign value of type 'ArraySlice<Int>' to type '[Int]' 
    for j in (0..<models[i].slots.count) 
     { 
     print("model:",i, ", slots:", j) 

     let minutes = models[i].slots[j].endDate.minutes(from: models[i].slots[j].startDate) 
     print(minutes) 

     timeTable[i][j] = minutes 
     } 
    } 

这是我的模型的一个例子:
enter image description here

为模型[I] .slots.count的值是不同的,很少是相同的。

我想这样做,因为我必须为数组的行分配位置,我不知道如何分配它......所以我先分配50,然后在循环中删除最后一个(如果可以先分配,我应该...)

在此先感谢。

+1

和'模型[I] .slots.count'是每个车型排量不同?如果可能,请给我们一个“模型”数组示例 – Ladislav

+0

@ Ladislav,模型[i] .slots.count对于每个模型都是完全不同的。我举了一个模型的例子。 – Claudio

为什么不只是这样做:

var timeTable : [[Int]] = [] 
for model in models { 
    let modelArray = Array(repeating: 0, count:model.slots.count) 
    timeTable.append(modelArray) 
} 
+0

我认为:D非常感谢。简单而直接。 – Claudio

+1

是的,没必要创建一个数组,以使它变小,因为你已经知道在那个时候应该是多大的子数组了;) – Ladislav