【发布时间】:2012-08-09 18:13:56
【问题描述】:
我对 Objective-C 非常陌生,遇到了 NSDictionary 方法allKeysForObject:。似乎非常有用。但是,我有一个 NSDictionary,它有几个 NSArrays(长度均为 2),并且由 NSStrings 键入。基本上,键是项,数组定义了它们的两个属性。如果我想提取所有具有特定属性的项目名称,可以使用 allKeysForObject 之类的东西来完成,还是应该只循环字典并增长一个可变数组(似乎效率低下)。
我会包含一个代码 sn-p,但我觉得这个问题足够概念化,代码不会真正澄清任何事情。哦,什么鬼。下面是一些简化的代码:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:2],nil],@"Car",[NSArray arrayWithObjects:[NSNumber numberWithInt:2],[NSNumber numberWithInt:3],nil],@"Boat",nil];
NSLog(@"%@",[dict allKeysForObject:???]); // this is the line I am not at all sure about.
编辑:感谢您到目前为止的回复。不过,我并不清楚我的问题。我正在寻找一种方法来做更一般的事情。我不想检索特定对象的所有键,比如[1,2],但我想在字典中查找所有数组,包括 NSNumber 1 并返回这些键。所以如果我添加了@"Plane",[NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:3],nil],我想以某种方式查询NSNumber 1 并得到@"Car" 和@"Plane"。我感觉这不是这种方法的设计目的。
【问题讨论】: