Получение данных из NSDictionary - PullRequest
3 голосов
/ 08 июля 2010

Я не совсем уверен, что понимаю, как сделать следующее.

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

Тогда я хочу добавить словари в массив.

Во-первых, как это сделать?и во-вторых, что, если я позволю пользователю регистрировать свои собственные записи.Поэтому мне нужно, чтобы текстовые поля на экране, когда пользователь закончил, он сохраняет поля в виде пары ключ-значение в новом словаре, например, словаре пользователя.

Что я буду делать позже при попытке заполнить табличное представление данными, введенными пользователями, я не знаю ключей или значений в этом словаре, так как я могу получить эти данные?скажем, я хочу загрузить словарь пользователя из массива index 2 и заполнить ячейки таблицы каждой записью словаря, как это сделать?Может быть, метод, как на массиве (получить entry.title по индексу бла-бла), получить значение ключа в словаре?

Как еще можно получить загруженные пользователем введенные данные, о которых они не знают значений?

С уважением

Ответы [ 2 ]

8 голосов
/ 08 июля 2010

Добавление автора и заголовка в словарь (при условии, что это уже существующие объекты - вероятно, NSString экземпляров в вашем случае):

NSMutableDictionary *books = [[NSMutableDictionary alloc] initWithCapacity:10];
[books setObject:title forKey:author];

То же самое для жанра / исполнителя:

NSMutableDictionary *music = [[NSMutableDictionary alloc] initWithCapacity:10];
[books setObject:artist forKey:genre];

Затем поместите их в массив:

NSArray *theArray = [NSArray arrayWithObjects:books, music, nil];

Затем прочитайте материал с индексом массива 2:

id key;
NSDictionary *theDictionary = [theArray objectAtIndex:2];
id value;
for (key in [theDictionary allKeys])
{
    value = [theDictionary objectForKey:key];
    // do something with the value
}
3 голосов
/ 08 июля 2010

Вы можете получить NSArray ключей в словаре, используя allKeys . Затем вы можете получить значения, используя objectForKey:

for (id key in [myDict allKeys]) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}
...