2017-10-16 102 views
0

我創建了一個二維數組,我想從一個節中刪除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

回答

1

爲什麼不只是這樣做:

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

我認爲:D非常感謝。簡單而直接。 – Claudio

+1

是的,沒必要創建一個數組,以使它變小,因爲你已經知道在那個時候應該是多大的子數組了;) – Ladislav

相關問題