访问作为NSDictionary中对象的数组元素

时间:2014-07-06 06:48:16

标签: objective-c nsarray nsdictionary elements

我在查明是否可以访问已被设置为字典中字符串键对象的数组元素时遇到了一些麻烦。例如,如果我有一个如下设置,每个数组给我一个书籍列表和代表书籍类别的字典键:

NSArray * list1= @[@"Book1",@"Book2",@"Book3"];  
NSArray * list2= @[@"Book4",@"Book5",@"Book6"];
NSArray * list3= @[@"Book7",@"Book8",@"Book9"];  
NSDictionary * libraryDict = @{@"category1": list1,@"category2":list2, @"category3":list3};

如何通过字典访问数组的各个元素?这可能吗?

我希望做的是在选择一个键后为书籍列表选择一个随机条目。因此,如果用户决定从 category1 获得随机图书推荐,那么我可以从 list1 数组生成随机选择。

我刚开始使用Objective C,如果这是一个n00b问题,请道歉。

2 个答案:

答案 0 :(得分:0)

是的,有可能,

例如。对于list1数组提取,如下所示:

NSLog(@"%@",[libraryDict objectForKey:category1]);

如果您想访问category1的单个元素,请尝试以下内容:

for(NSString str in [libraryDict objectForKey:category1])
{
 NSLog(@"%@", str);
}

答案 1 :(得分:0)

你可以写:

NSArray *value = (NSArray *)libraryDict[@"category1"];

它会返回与键配对的值" @"category1"" (在您的情况下,NSArray" list1")。