Хранение данных о фильтрах - PullRequest
0 голосов
/ 24 октября 2018

Мои сомнения касаются экрана фильтра.

Я хочу сохранить и удалить данные, которые пользователь выбрал и отменил выбор на экране фильтра соответственно.Я не уверен, какой тип данных использовать здесь.

Как видно из рисунка ниже: Предположим, у меня есть несколько заголовков фильтра, таких как «Категория», «Цвет», «Единица» и т. Д.И внутри каждого заголовка у меня есть некоторые значения, как в категории У меня есть значения из категории 1, категории 2 ... до категории 50. Теперь, когда пользователь выбирает что-то вроде категории 2, категории 3 ... я могу сохранить эти конкретные значения в массиве, но когдапользователь отменил выбор любой категории (сняв флажки) случайным образом, тогда как я смогу удалить это конкретное значение из массива, потому что я не могу получить связанный индекс внутри массива.массив, но они не совпадают по индексу со значениями из индекса tableView.) Помогите мне, как подойти к этому .. enter image description here

1 Ответ

0 голосов
/ 24 октября 2018

Вот как бы я подошел к проблеме.Предполагая, что у меня есть источник данных, который будет содержать элементы без применения какого-либо фильтра.(На практике это не так, как было бы, вы, вероятно, получили бы свой источник данных через сетевые вызовы). Как только пользователь применяет или удаляет фильтр, устанавливая или снимая флажок, я фильтрую источник данных с помощью активных фильтров.

Допустим, это ваш класс предметов.

class Item {
    var category: Category
    var color: Color
}

enum Category {
    case one
    case two
    .
    .
    case none
}

// Similarly for color and other parameters

Теперь это будет ваш объект фильтра, который поддерживает все активные фильтры.

class FilterParameters {
    var category: [Category]? = nil
    var color: [Color]? = nil
}

Создать объектэтого класса и каждый раз, когда фильтр отмечен или не отмечен, фильтруйте ваш источник данных с текущими активными фильтрами.(Если фильтр не выбран, игнорируйте этот фильтр и создайте параметры фильтра на основе тех, которые у вас есть).

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