Чтение словаря - PullRequest
       27

Чтение словаря

1 голос
/ 04 мая 2011

Я застрял, пытаясь понять, как это работает. У меня есть список, который представляет собой массив словарей. Мне нужно прочитать каждый словарь отдельно в массиве и сопоставить каждый словарь с ячейками в виде таблицы. У меня такое ощущение, что это очень просто, но мне не удается получить доступ к первому словарю и записать каждую пару ключ / значение в табличное представление; затем в ответ на кнопку «Далее», запись 2-го словаря в tavbeview, затем в 3-й словарь и т. д. и т. д. Мне не нужно возвращаться назад, но я должен идти вперед, отображая содержимое каждого последующего словаря в табличном представлении. Любые советы / примеры кода будут высоко ценится.

1 Ответ

0 голосов
/ 25 апреля 2012

Это то, что вы имеете в виду?

NSDictionary *cellValue = [self.array objectAtIndex:[indexPath row]];
NSString *label = [cellValue objectForKey:@"label"];
[cell.textLabel setText:label];

array инициализируется с содержимым plist. У plist есть словарь с ключом label, к которому затем можно получить доступ через objectForKey.

Я не совсем уверен, что вы делаете для написания своих словарей, но я создал собственный класс с именем DataObject и добавил несколько таких методов, как addNewItem и writeToFile, например:

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:fileTitle];

[array writeToFile:finalPath atomically:YES];

и для addNewItem:(NSString *)label:

NSDictionary *newItem = [[NSDictionary alloc] initWithObjectsAndKeys:label,@"label", nil];
[array addObject:newItem];
[newItem release];
[self writeTask];

Тогда просто получите к ним доступ следующим образом:

DataObject *db = [[DataObject alloc] init];
[db addNewItem:youItemTitle];
[db release];

хотя это было бы очень плохо для управления памятью.

...