Отображение списка NSArray изнутри NSDictionary? - PullRequest
1 голос
/ 22 февраля 2012

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

С помощью этого сообщества я поместил списки связанных слов в NSArrays.Например:

NSArray *catList = [NSArray arrayWithObjects:@"Lion", @"Snow Leopard", @"Cheetah", nil];
NSArray *dogList = [NSArray arrayWithObjects:@"Dachshund", @"Pitt Bull", @"Pug", nil]; 
... 

И я поместил эти массивы в NSDictionary:

 NSMutableDictionary *wordDictionary = [[NSMutableDictionary alloc] init];
        [wordDictionary setObject: catList forKey:@"Cats"];
        [wordDictionary setObject: dogList forKey:@"Dogs"]; 
...

Что я хотел бы сделать, это случайно выбрать один из ключей NSDictionary и отобразитьсписок NSStrings содержится в его массиве.Очевидно, [wordDictionary objectForKey: @"Cats"]; позволяет мне получить доступ к массиву catList с ключом Cats для отображения списка строк, содержащихся в массиве.Но я хотел бы отображать списки в произвольном порядке и без указания ключа.

Я экспериментировал с [wordDictionary allKeys] и мог произвольно отображать имя ключа, но не список, содержащийся в массиве.

У кого-нибудь есть указатели для отображения списка NSArray из NSDictionary?

Большое спасибо.

1 Ответ

2 голосов
/ 22 февраля 2012

Это то, что вы хотите?

NSInteger keyCount = [[wordDictionary allKeys] count];
NSInteger randomKeyIndex = random() % keyCount;
NSString *randomKey = [[wordDictionary allKeys] objectAtIndex:randomKeyIndex];
NSArray *randomlySelectedArray = [wordDictionary objectForKey:randomKey];
...