2012-02-22 183 views
1

我正在开发一款适用于个人用途的应用程序,用于随机显示关联词的列表。从NSDictionary中显示一个NSArray列表?

在此社区的帮助下,我已将相关单词列表放入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键中的一个,并显示NSString的持有名单在它的阵列中。很显然,[wordDictionary objectForKey: @"Cats"];允许我访问设置为Cats键的catList数组,以显示数组中保存的字符串列表。但我想随机显示列表而不指定键。

我用[wordDictionary allKeys]进行了实验,可以随机显示一个密钥的名称,但不能保存在数组中。

有没有人有任何指针显示从NSDictionary的NSArray列表?

非常感谢。

回答

2

这是你想要的吗?

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

哇,这很快。这正是我需要的。多谢@百万!如果你不介意我的问题,你有多长时间编码?我刚刚两周前就开始了,这很有趣,虽然令人生畏。是否有任何你会推荐的目标资源?再次感谢。 – 2012-02-22 02:54:02

+1

我已经做了近11年的兼职编程,并且全职工作了两个月。 Big Nerd Ranch是一家培训和出版编程书籍的公司,我阅读了他们的两本书并完成了所有的作业。祝你好运! – bneely 2012-02-22 02:55:44