添加到 NSDictionary 条目到 NSMutableDictionary

Posted

技术标签:

【中文标题】添加到 NSDictionary 条目到 NSMutableDictionary【英文标题】:Add to NSDictionary entries to NSMutableDictionary 【发布时间】:2012-08-27 13:32:52 【问题描述】:

我有一个遍历数组中一系列字典的 for 循环。

如何将通过 for 循环的所有字典条目合并为一个 NSMutableDictionary

我试过addEntriesFromDictionary,但它不起作用。感谢您的帮助。

for (int i=0; i<sections.count; i++)

    formElements    = [[sections objectAtIndex:i]objectForKey:@"Dictionary"];        

【问题讨论】:

你想成为什么关键?也许我误会了你。 【参考方案1】:
NSMutableDictionary * mutableDict = [NSMutableDictionary dictionary];

for (NSDictionary * formElements in sections)

    [mutableDict addEntriesFromDictionary:formElements];

如果他们不共享任何密钥是正确的,这应该可以工作。

【讨论】:

【参考方案2】:

您可以添加字典对象,如下所示。

NSMutableDictionary *mDict=[NSMutableDictionary dictionary];
    [mDict addEntriesFromDictionary:DictObj];

【讨论】:

现在发生的事情是每次我通过循环时,最后一个字典替换它之前的字典而不是添加它。所以我在第一个字典中有 5 个条目,在第二个字典中有 2 个条目。最终,我想将它们结合起来计算 7 个条目。 @user984248 是的,因为密钥相互替换。您可能应该为此使用一个数组,然后执行 [array addObject:formElements] 我可以这样做并有一本字典作为最终结果吗?我已将所有代码配置为从字典中读取条目。 你不能拥有一本字典。我假设sections 中的字典具有相同的键,您需要为每个字典设置一个唯一键或创建一个多维字典。 @user984248 我更新了我的答案。 addEntriesFromDictionary 应该可以工作。【参考方案3】:
NSMutableDictionary *mDict=[[NSMutableDictionary alloc]init];
    NSMutableDictionary *mDict2=[[NSMutableDictionary alloc]init];

//later suppose you have 5 object in mDict and 2 object in mDict2. combine in this Way.
    NSMutableArray *keys=[[NSMutableArray alloc]init];
    NSMutableArray *obj=[[NSMutableArray alloc]init];

    keys=[[mDict allKeys] mutableCopy];
    obj=[[mDict allValues] mutableCopy];

    [keys addObjectsFromArray:[mDict2 allKeys]];
    [obj addObjectsFromArray:[mDict2 allValues]];

    NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithObjects:obj forKeys:keys];

【讨论】:

【参考方案4】:

您可以使用 -objectEnumerator 或 NSDictionary 的其他方法来枚举您的字典。

所以在你的循环中,你可以枚举你的字典并将所有对象添加一个键到一个大字典中。

【讨论】:

你能举个例子吗?这就是我要找的……最后是一本大字典。 是的,我可以,但是 Pandey_Laxman 解决方案更好。我完全忘记了这个方法。如果您仍然想要示例,我可以提供一个示例,但我认为问题在于 MrAzulay 所说的重复键。我的解决方案对你没有帮助。 我明白了。他们有不同的键。让我看看我能用数组做什么

以上是关于添加到 NSDictionary 条目到 NSMutableDictionary的主要内容,如果未能解决你的问题,请参考以下文章

将对象 NSMutableArray 添加到 NSDictionary

如何在序列化为 json 之前将 NSDictionary 添加到另一个 NSDictionary

将整个数组添加到 nsdictionary

如何将 NSDictionary 数据添加到 NSMutableArray?

将数组添加到 NSDictionary 中的不同键

将 NSDictionary 添加到 NSMutableArray 后访问密钥。 iOS