如何使用一个键创建多个值的NSDictionary?

时间:2015-11-16 15:47:12

标签: objective-c nsdictionary

到目前为止,我所知道的创建NSDictionary对象的方法是每个键只能有一个值。

我有两把钥匙,'门'和' windows',但是每个人的一些值 - 让我们说五个也是所有字符串。要创建一个字典,我是否只需重复每个值的键,例如@{@"door" : @"hinge", @"door" : @"knob", @"door" : @"panel"}或者有更好的方法吗?

我希望最终能够关联一些值,这些值也将是字符串,以便在它们匹配时进行测试。这两个键中的一个通过isEqual:方法。但我觉得有一种比重复键字更好的方法吗?我可以只创建一次密钥,然后将多个值与它相关联吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

NSDictionary将一个键与一个对象相关联。如果要使用它,则需要将多个值组合到一个对象中。最简单的方法是将值放入另一个集合中,最有可能是NSArrayNSSet

对于您的示例,您的文字应如下所示:

@{ @"door": @[ @"hinge", @"knob", @"panel" ] }

您可以创建一种新类型的集合(或扩展/子类NSDictionary),但我首先要弄清楚您的界面需要看起来像什么。不幸的是,您无法以第一篇文章的格式使用文字。这会强制数据进入NSDictionary,第一个键/值对会覆盖具有相同键的任何其他对。