合并两个字典

问题描述:

我正在寻找合并字典以响应用户从服务器调用请求更多数据。合并两个字典

我看到这个方法是一个提供给我:

- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary 

其中指出这一点:

如果两个字典包含相同的密钥,接收字典的 该键以前的值对象发送了释放消息,并且新的值对象取代了它的位置。

但是,例如在第一次调用时,我的字典将把键0,1,2,3作为字符串。不要问为什么这是我必须使用的数据!

然后在另一个呼叫说下4条目,而不是得到字符串键4,5,6,7我得到.... 0,1,2,3!

因此,如果我使用上面的方法,原始条目将始终被覆盖。

有没有合并这种数据的方法,所以我得到1,2,3,4,5,6,7等?

我在寻找一些丑陋的枚举形式吗?

+1

钥匙必须是唯一的,我不知道你想要它做什么。 – 2011-06-15 20:12:53

+0

这就是问题的全貌!我受到传入数据的限制... – user7865437 2011-06-15 20:58:54

+0

您希望实现的行为是什么?如果您想保留旧数据并抛弃旧数据,请在newDictionary上调用addEntriesFromDictionary:并覆盖新数据。 – 2011-06-15 21:00:29

如果您的所有密钥都是顺序整数,则应该使用数组(或者如果无法更改源格式,则将其转换为数组)。 arrayByAddingObjectsFromArray:将在转换后加入到它们中,或者在可变的情况下加入addObjectsFromArray:

+0

我想我应该扩大一点。 JSON中的传入数据给了我一个包含类似10个条目的字典,但每个字典都使用返回的值0,1,2等,所以我的字典在随后的调用中以键0,1,2等开始,尽管我呼吁接下来说在JSON中返回的数据中的4个项目,它给我的密钥0,1,2等等,所以我需要将这些添加到收到的第一个数据的末尾...但是它们具有相同的密钥ergo问题 – user7865437 2011-06-15 21:04:03

+0

您可以添加传入的JSON在您的问题中的样子,以及您希望它最终看起来像什么? – 2011-06-15 21:06:14

+0

{“0”:{....},“1”:{....},“2”:{...}所以数字是字典键,每个字典中都包含字符串等。每次调用JSON都会返回一个始终从零开始的字典。因此,因为我已经有这些值的键,我需要合并/追加新的JSON字典到最后 – user7865437 2011-06-16 06:35:50