【问题标题】:Merge two NSDIctionay in one NSDictonary将两个 NSDIctionary 合并到一个 NSDictionary 中
【发布时间】:2012-10-17 23:47:31
【问题描述】:

我想将两个 NSDictionary 合并到一个 NSDictionary 中。 我的第一本词典

BreakFast Dates Dic {
    "2012-07-24" = "27";
    "2012-08-03" = "98";
    "2012-08-06" = "4203";
    "2012-08-23" = "0";
    "2012-08-24" = "0";
    "2012-09-11" = "36";
    "2012-09-19" = "450";
    "2012-09-24" = "36";
    Goals = 3;
}

我的第二本词典

Dinner Dates Dic {
    "2012-08-03" = "100";
    "2012-08-27" = "0";
    "2012-09-19" = "270";
    Goals = 4;
}

我想将两个字典合并为一个。就像在早餐中我有“2012-09-19”和我在晚餐中的相同日期。我想用逗号 (,) 分隔两个值。 我的结果字典应该是这样的。

combine {
    "2012-07-24" = "27,0";
    "2012-08-03" = "98,100";
    "2012-08-06" = "4203,0";
    "2012-08-23" = "0,0";
    "2012-08-24" = "0,0";
    "2012-09-11" = "36,0";
    "2012-09-19" = "450,270";
    "2012-09-24" = "36,0";
    Goals = 3,4;
}

【问题讨论】:

  • 如果必须在字典上进行迭代......没有其他办法......
  • 可以做到,但是对组合结构的任何处理都会比单独的信息更困难 - 为什么需要这个?您还希望组合信息是一个字符串还是 "36",0 是什么?
  • 可以是一个字符串。之后我将用逗号(,)分割它,我想绘制图表。来自像 98 这样的字典将是红色,而 100 将是蓝色。这就是我希望它工作的方式。
  • 如果一个日期不在两个字典中怎么办?合并后的条目会是什么样子?
  • 它会给出 0... 就像在晚餐中 2012-9-24 不存在然后在 2012-09-24 结合它的 0 .. "36,0"

标签: iphone objective-c xcode ios4 nsdictionary


【解决方案1】:
NSMutableDictionary *combined = [objectDelegate.dataBreakFastSummary mutableCopy];
    for(NSString *key in [combined allKeys])
    {
        NSString *breakfastDate = [objectDelegate.dataBreakFastSummary valueForKey:key];
        NSString *dinnerDate = [objectDelegate.dataDinnerSummary objectForKey:key];
        if(dinnerDate){
            [combined setObject:[NSString stringWithFormat:@"%@,%@",breakfastDate, dinnerDate] forKey:key];
            } else {
                [combined setObject:[NSString stringWithFormat:@"%@,0",breakfastDate] forKey:key];
                }
    }
    NSLog(@"Combine %@",combined);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多