到目前为止,我所知道的创建NSDictionary对象的方法是每个键只能有一个值。
我有两把钥匙,'门'和' windows',但是每个人的一些值 - 让我们说五个也是所有字符串。要创建一个字典,我是否只需重复每个值的键,例如@{@"door" : @"hinge", @"door" : @"knob", @"door" : @"panel"}
或者有更好的方法吗?
我希望最终能够关联一些值,这些值也将是字符串,以便在它们匹配时进行测试。这两个键中的一个通过isEqual:方法。但我觉得有一种比重复键字更好的方法吗?我可以只创建一次密钥,然后将多个值与它相关联吗?
提前感谢您的帮助。
答案 0 :(得分:0)
NSDictionary
将一个键与一个对象相关联。如果要使用它,则需要将多个值组合到一个对象中。最简单的方法是将值放入另一个集合中,最有可能是NSArray
或NSSet
。
对于您的示例,您的文字应如下所示:
@{ @"door": @[ @"hinge", @"knob", @"panel" ] }
您可以创建一种新类型的集合(或扩展/子类NSDictionary
),但我首先要弄清楚您的界面需要看起来像什么。不幸的是,您无法以第一篇文章的格式使用文字。这会强制数据进入NSDictionary
,第一个键/值对会覆盖具有相同键的任何其他对。