有没有办法根据NSDictionary的值获取NSDictionary的键值?我可以通过几种方式获得基于密钥的值,但我需要得到密钥。
使用下面的例子,如果我的值是QuestionType,我将如何获得密钥?
NSDictionary *question = [NSDictionary dictionaryWithObjectsAndKeys:
@"QuestionType", @"0",
@"Answer", @"1",
nil];
答案 0 :(得分:6)
您可以使用-[NSDictionary allKeysForObject:]
。它返回NSArray
个键,因为任何给定对象都可能有多个键。
在你的例子中:
NSDictionary *question = [NSDictionary dictionaryWithObjectsAndKeys:
@"QuestionType", @"0",
@"Answer", @"1",
nil];
for (NSString *key in [question allKeysForObject:@"QuestionType"]) {
NSLog(@"Key: %@", key);
}
顺便说一下,您的密钥(@"0"
和@"1"
)是NSString
是否有任何特殊原因?您可以使用支持NSCopying
的任何对象作为键,因此NSNumber
可能是更好的选择。