Извлечение данных из словаря внутри cellForRowAtIndexPath - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть набор данных внутри словаря и внутри метода

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

. Я хочу получить данные из этого словаря.Как мы можем получить объекты для каждого indexPath.row.

Один из способов, о котором я мог подумать, - это получить массив ключей, а затем извлечь объект из этого массива на основе indexPath.row, а затем использовать этот ключ для извлечения словаря.объект.

Пожалуйста, предложите.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2011

словарь не является упорядоченной коллекцией, подобной массиву, поэтому предложенный вами метод, вероятно, является подходящим ... Зависит от того, как вы хотите, чтобы данные были представлены (отсортированы по ключам / значениям).

0 голосов
/ 23 февраля 2011

Как ваши предметы сортируются в таблице? Важен ли порядок? Нет действительно простого ответа на этот вопрос. Вы уверены, что вам нужно сохранить словарь ваших данных? Как я вижу, у вас есть следующие варианты:

  • вызовите [dictionary allValues], чтобы получить массив всех значений. Затем вы можете отсортировать его так, как вам нужно, и вернуть элемент в index indexPath.row. Недостатком является то, что вам нужно отсортировать массив для каждой строки, что не идеально, если у вас много элементов. Это может сделать вашу прокрутку прерывистой.

  • сохраните копию отсортированной версии массива вашего словаря и обязательно обновляйте ее при каждом обновлении словаря. Это лучше подходит для большого набора данных, который меняется не часто. Вы можете обернуть свой словарь и массив в класс, который позаботится о синхронизации двух.

Вам нужно будет взвесить недостатки в зависимости от того, на что похожи ваши данные.

0 голосов
/ 23 февраля 2011

Это не очень хорошая практика, потому что порядок ключей словаря не определен.

Если ваши данные должны быть словарем, вы должны предоставить явную информацию, которая отображает ключи словаря и путь индекса таблицы.

Например, у вас может быть другой массив, в котором ключи словаря отсортированы в том же порядке, в котором вы видите ваши объекты в таблице.

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