Jak zwrócić zmienną tablicę z funkcji?Zwracanie tablica z tablicami zmiennymi z funkcji
Oto krótki fragment kodu, aby uczynić go bardziej jasne:
var tasks = ["Mow the lawn", "Call Mom"]
var completedTasks = ["Bake a cake"]
func arrayAtIndex(index: Int) -> String[] {
if index == 0 {
return tasks
} else {
return completedTasks
}
}
arrayAtIndex(0).removeAtIndex(0)
// Immutable value of type 'String[]' only has mutating members named 'removeAtIndex'
następujące prace snippet ale muszę zwrócić Array
, a nie NSMutableArray
var tasks: NSMutableArray = ["Mow the lawn", "Call Mom"]
var completedTasks: NSMutableArray = ["Bake a cake"]
func arrayAtIndex(index: Int) -> NSMutableArray {
if index == 0 {
return tasks
} else {
return completedTasks
}
}
arrayAtIndex(0).removeObjectAtIndex(0)
tasks // ["Call Mom"]
Dzięki!
Dzięki za odpowiedź, to ma całkowicie sens. Warto jednak zauważyć, że w całym programie "zadania" i "zakończone zadania" są zmiennymi instancji (zadeklarowanymi za pomocą 'var') i zwracam' self.tasks' oraz 'self.completedTasks'. Nie mogę utworzyć kopii zwróconej tablicy, usunąć elementu, a następnie przypisać do niego zmienną instancji, ponieważ same zmienne instancji są przekształcane jako niemodyfikowalne. W jaki sposób można transformować zmienne instancji jako niemodyfikowalne po zwróceniu ich przez funkcję? – Damien