我对Objective-C非常陌生,遇到了NSDictionary方法allKeysForObject:
。看起来非常有用。但是,我有一个NSDictionary有几个NSArrays(所有长度为2),并由NSStrings键入。基本上,键是项目和阵列定义它们的两个属性。如果我想拉取所有具有特定属性的项目名称,是否可以使用类似allKeysForObject
的东西来完成,或者我应该循环遍历字典并生成可变数组(似乎效率低下)。ObjC:NSDictionary 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"
和@"Plane"
。我意识到这不是这种方法设计的目的。
啊哈!这看起来不错!谢谢,我需要玩它,但谢谢你指点我正确的轨道! – 2012-08-09 18:35:51