添加到 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