嵌套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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章