Лучший способ хранить элементы табличного представления? - PullRequest
0 голосов
/ 17 июня 2011

У меня есть такая иерархия -> Дни (Таблица) -> Время (Таблица) -> Информация (Просмотр).

Было бы лучше хранить информацию как NSDictionary, с Днями какключи и время как NSArray для каждого ключа или Days as NSArray с другим NSArray для времени?

Ключевые моменты, на которые следует обратить внимание:

  1. Я бы хотел отсортироватьдни и время.
  2. Я мог бы удалить некоторые данные времени в NSArray, если бы захотел.

Ответы [ 2 ]

0 голосов
/ 18 июня 2011

Я бы использовал NSMutableDictionary дней с NSMutableArray раз для каждого дня. Таким образом, вы не пытаетесь синхронизировать два отдельных массива, поскольку каждый «дневной» ключ всегда будет указывать на ваш массив раз.

Вы можете сортировать свой массив раз по своему усмотрению, так как это массив, и вы можете выбрать, как отображать свои дни в таблице, просто основываясь на ключе. Вы можете получить доступ к массиву всех ваших ключей, используя метод [dictionary allKeys].

Например, в viewDidLoad вы можете использовать метод [dictionary allKeys], чтобы получить массив ключей вашего словаря. Вы можете отсортировать их по своему усмотрению, а затем выполнить итерацию по массиву в методе источника данных cellForRowAtIndexPath tableview.

-(void)viewDidLoad {
    /* keys = NSMutableArray instance variable
       dictionary = the dictionary of days, with each days value being an array of times 
    */
    keys = [dictionary allKeys];

    //sort however you want
}

И затем в своем методе делегата didSelectRowAtIndexPath вы знаете, какой ключ они выбрали, основываясь на indexPath.row выбора и строке массива ключей.

0 голосов
/ 17 июня 2011

Если вы собираетесь удалить или заменить элементы в массиве, вы должны использовать изменяемые версии NSMutableArray и NSMutableDictionary. Я бы, вероятно, использовал для этой цели массив.

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