Как обновить массив источника данных (без разделов), используя UITableView indexPath (с разделами)? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть исходный массив элементов, извлеченный из базы данных:

var items = [Item]()

, который содержит:

  1. Фрукты, яблоко, красный, 1
  2. Фрукты, Апельсин, Апельсин, 2
  3. Овощ, Салат, Зеленый, 1
  4. напиток, молоко, белый, 1

Чтобы отобразить этот список в UITableView, сгруппированном по разделам, я создаю следующую структуру:

struct Section {
    var sectionName : String!
    var sectionItems : [Item]!
}

var sections : [Section]!

И с массивом разделов я могу правильно отобразить свой UITableView. Если мне нужно изменить количество элемента, я могу легко изменить элемент в массиве section , получая доступ к данным через раздел и строку indexpath.

Проблема:

Однако я не могу понять, как изменить исходные данные (список из 4 элементов), которые мне нужно использовать для сохранения в базе данных. Информация indexpath ничего не говорит мне о том, какой индекс в массиве items мне нужен для доступа к изменениям.

Решения

Я думаю о двух решениях, ни одно из которых не кажется слишком хорошим:

  1. Восстановление исходного списка путем итерации по «разделам». Звучит как много ненужных итераций, учитывая, что я мог бы просто получить доступ к элементу через индекс.

  2. Создайте дополнительное свойство для каждого элемента, которое сохраняет свою позицию индекса в исходном массиве. Это выглядит очень грязно.

Как бы вы, парни и девушки, пошли на это?

Заранее большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...