嵌套for循环处理nsdictionaries的nsarray [关闭]

Posted

技术标签:

【中文标题】嵌套for循环处理nsdictionaries的nsarray [关闭]【英文标题】:nested for loop dealing with nsarray of nsdictionaries [closed] 【发布时间】:2014-11-15 21:51:09 【问题描述】:

我目前不在电脑旁,但有过脑电波。我正在尝试对我的表格视图进行 a-z 索引。 我的 plist 被读入一个数组 - 一个字典数组也是如此。每个字典代表一个单元格,有两个键 - 单词和定义。 我需要检查单词的第一个字母,如果唯一则作为键放置,然后添加与该字母对应的 did ionaries。我有这个代码。 如何遍历数组中的每个字典,并访问每个字典的单词键? 我可以:

   for (nsdictionary *dict in plistContentsArray) 
    for (NSString *key in dict)
      NSstring *key = [dict objectforkey: @"Word"]; 
      \\code for sections
       Then use addobject:dict 

如果这是糟糕的代码,我深表歉意——作为新手的乐趣。 我有计划用于分段的代码,但我不知道如何访问数组中的每个单独的字典,只使用一个键(单词)的部分代码,但将整个字典对象添加到部分数组中,这样我就可以使用定义键用于详细视图。

谢谢

【问题讨论】:

【参考方案1】:

您不需要嵌套循环。您有一个字典数组,并且您想要字典中特定键的值。做吧:

for (NSDictionary *dict in plistContentsArray) 
    NSString *word = dict[@"Word"];
    // code for sections

【讨论】:

谢谢你——我明天就去。以为我会把它复杂化。我认为我可以使用 addObject:dict 是否正确? 此代码将只为每个字典中的键“Word”提供对象。 @NickWilkerson 这就是 OP 所要求的。仅供参考 - 我没有否决你的答案。【参考方案2】:

更改 (NSString *key in dict)

to for (NSString *key in [dict allKeys])

如果你只想要一个包含所有键的 NSArray

NSMutableArray *keys = [[NSMutableArray alloc] init];

for (NSDictionary *dict in plistContentsArray)
    [keys addObjectsFromArray:[dict allKeys]];

【讨论】:

不需要对每个字典的键进行迭代。

以上是关于嵌套for循环处理nsdictionaries的nsarray [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在目标 C 中循环遍历 nsdictionary,其中键值未知且字典深度嵌套

有关c语言的循环嵌套的问题

batfor循环嵌套改名

嵌套批处理 for 循环

JS中for循环嵌套打印100以内3的倍数?

for循环 嵌套 算阶乘和的问题