Один UITableView - Несколько DataSource, лучший шаблон разработки?

Я думаю, что мы можем сделать две вещи, чтобы улучшить производительность, но метод не самый лучший, и это зависит от номера вашего списка:

  • сократить время итерации
  • использовать жадный алгоритм уменьшения приоритета максимального значения. Чтобы сделать это, нам сначала нужно отсортировать список, стоимость которого может стоить O (nlog (n)) времени.

код такой

public static int findMin(List<Integer> distance, int points) {
    int sum = 0;
    int c = 1;
    // sort the list for implement greedy algorithm
    Collections.sort(distance, Comparator.reverseOrder());
    while (true) {
        for (Integer dist : distance) {
            sum += dist / c;
            // reduce the times of iterate
            if (sum <= points) {
                return c;
            }
        }
        c++;
        sum = 0;
    }
}
5
задан gerry3 7 January 2010 в 08:59
поделиться

1 ответ

Будьте осторожны со своей терминологией здесь. UITableView имеет что-то названное a dataSource но Вы, кажется, относитесь, по существу, к двум различным наборам данных.

В случае Вы предлагаете в таблице dataSource (объект, который придерживается протокола UITableViewDataSource), у меня было бы три массива.

  • currentlyViewedArray
  • datasetOneArray
  • datasetTwoArray

В методах источника данных используйте currentlyViewedArray в качестве источника данных таблицы.

Затем установите currentlyViewedArray на то, какой бы ни массив Вы хотите просмотреть:

self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];

Можно использовать UISegmentedControl для переключения между двумя массивами.

12
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: