Из pList (словарь) в Tableview - PullRequest
       24

Из pList (словарь) в Tableview

0 голосов
/ 21 октября 2010

У меня есть редактируемый pList со словарем строк в формате:

21-10-2010  ->  @"item1"
20-10-2010  ->  @"item2"
19-10-2010  ->  @"item3"
18-10-2010  ->  @"item4"
17-10-2010  ->  @"item5"
ect...

То есть с датами в строковом формате в качестве ключей и строками с различной информацией в качестве значения. Длина словаря может составлять до 200 ключей. И ключи не обязательно приходят в порядок, а некоторые даты могут отсутствовать.

Я хочу показать ключи и их значения в виде таблицы с помощью UITableViewCellStyleValue2. На данный момент я помещаю их в табличное представление, записывая все ключи к глобальному NSMutableAray при запуске:

keysArray = [myDictionary allKeys];

и затем в методе tableview я помещаю их, используя обычный indexPath в качестве индекса для массива:

cell.textLabel.text = [keysArray objectAtIndex:indexPath];
cell.detailTextLabel.text = [myDictionary objectForKey: [keysArray objectAtIndex:indexPath]];

Это работает, но даты не в порядке с самой высокой датой. Это связано с тем, что функция 'allKeys' возвращает ключи в случайном порядке (также в самим словаре нет порядка).

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

Спасибо, что выслушали, Джон.

1 Ответ

0 голосов
/ 21 октября 2010

Вы можете создать массив, отсортированный по дате.Вы индексируете этот массив indexPath.row для запроса значения элемента.

Для сортировки массива вы можете использовать:

-sortedArrayUsingComparator:

[array sortedArrayUsingComparator:^(id obj1, id obj2) { 
  // Your comparaison
}];

см. Это руководство по использованию блока

...