ObjectiveC - 具有重复键的键值对集合

4

ObjectiveC提供了一个键值对的集合,允许一个键出现多次吗?

我试图将一个xml文件解析成一些简单的结构。使用嵌套的NSDictionary已经可以正常工作了,但现在xml元素可以出现多次。

编辑:我的解决方案

我选择了一个NSArray和KeyValuePairs,结果发现我需要一些有序的东西,NSDictionary不可行。副作用:这种方式很容易为我的集合实现NSFastEnumeration。


我最初使用了被接受的答案,但后来(几天后)发现这是不可能的。如果我没有这些条件,我会使用Sven的解决方案。 - Fox32
3个回答

4
不,Cocoa没有这样的集合。如果您不想使用第三方库,可以通过使用具有NSArray值的NSDictionary来模拟它。或者您可以查看CHDataStructures框架。

1
如果您使用AFHTTPClient设置多个GET参数,只需使用NSArray设置值即可处理。 - Max MacLeod
1
感谢@MaxMacLeod。我发现AFN行为会在重复的参数名称后添加“[]”,但是快速编辑可以解决这个问题:https://gist.github.com/4113874 - phatblat

3

这不是一个很好的键。

最好的方法是拥有一个NSDictionary,对于每个键,有一个NSArray保存所有该键的值。


1

或者一个包含任意数量的NSDictionaries(或每个都有键和值属性的NSObjects)的NSArray。然后,您将能够使用谓词过滤数组,以查找特定键及其关联值的所有出现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接