如何通过值获取密钥?
现在我通过键获取值,如下所示:
NSString *valueStr = [dict objectForKey:@"Key2"];
我需要按价值获得关键。
答案 0 :(得分:4)
for (NSString* key in [dictionary allKeys]) {
NSString* value = [dictionary objectForKey:key]
if(value equalsToString:@"SearchedValue") {
searchedValue = value;
keyForSearchedValue = key;
}
但这不是推荐的编码方式。相反,你应该按键搜索,而不是按值搜索。 请不要为同一主题创建3个新问题。
答案 1 :(得分:2)
NSString *valueStr = ...;
NSArray *keys = [dict allKeysForObject:valueStr];
返回一个数组,其中包含字典中具有给定值的所有键。
答案 2 :(得分:1)
这是一项昂贵的操作,NSDictionary
(与任何 map 集合类一样)旨在按键保存值。
你可以这样做,但是(假设键和值都是NSString
):
NSString *wantValue = @"tulips";
for (NSString *name in dict)
{
NSString *value = [dict objectForKey:name];
if ([value isEqualToString:wantValue])
{
NSLog(@"name '%@' matches", name);
}
}