2016-04-24 3 views
0

Я использую единственный UITableViewController для отображения различных списков в моем приложении.UITableViewController - переупорядочение скопированного массива?

Проблема в том, что иногда я хочу, чтобы пользователь переупорядочил список отправленных. И поскольку Swift передает массивы по значению, любое переопределение, которое я делаю в массиве в моем UITableViewController, очевидно, не влияет на исходную модель. И я хочу этого.

Я могу придумать некоторые грубые способы сделать это, но что такое -практичный способ сделать это?

Спасибо!

+1

Как вы переназначения в списке на вашем столе? Если у вас есть вызов функции до и после, возможно, запись индексов, а затем вручную изменить порядок исходного массива. removeAtIndex, insertAtIndex и т. д. –

+0

Он должен быть основан на вашей реализации переупорядочения, если вы используете insert/update/moveRowAtIndexPath, вы можете изменить модель в это время. Пожалуйста, укажите реализацию переупорядочения – HardikDG

+0

, вы можете проверить этот ответ: http: // stackoverflow. com/a/36826731/4557505, tableview имеет метод moveRowAtIndexPath, где вы можете получить индекс и обновить модель/массив на основе изменения порядка – HardikDG

ответ

0

Я не уверен, если это считается грубым решением, но вы можете использовать in-out parameter параметр, чтобы сделать что-то вроде:

func modifyArray(inout a:Array<String>) { 
    a.sortInPlace() 
} 

var array = ["one", "two", "three", "four", "five"]; 
modifyArray(&array)  // array is now ["five", "four", "one", "three", "two"] 
Смежные вопросы