我对 Objective-C 很陌生,遇到了 NSDictionary 方法 allKeysForObject:
。似乎非常有用。但是,我有一个 NSDictionary,它有几个 NSArrays(长度均为 2)并且由 NSStrings 键入。基本上,键是项,数组定义了它们的两个属性。如果我想提取所有具有特定属性的项目名称,可以用类似的东西来完成allKeysForObject
,还是应该只循环字典并增长一个可变数组(似乎效率低下)。
我会包含一个代码片段,但我觉得这个问题足够概念化,代码不会真正澄清任何事情。哦,什么鬼。这是一些简化的代码:
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"
and @"Plane"
。我感觉这不是这种方法的设计目的。