【问题标题】:nested for loop dealing with nsarray of nsdictionaries [closed]嵌套for循环处理nsdictionaries的nsarray [关闭]
【发布时间】: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 }}

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

谢谢

【问题讨论】:

    标签: ios objective-c arrays uitableview dictionary


    【解决方案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]];
    }
    

    【讨论】:

    • 不需要对每个字典的键进行迭代。
    猜你喜欢
    • 2011-05-19
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2023-04-01
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多