我如何通过价值获得关键?

时间:2012-11-15 13:06:50

标签: objective-c ios

  

可能重复:
  How i can fetch array in xcode?

如何通过值获取密钥?

现在我通过键获取值,如下所示:

NSString *valueStr = [dict objectForKey:@"Key2"];

我需要按价值获得关键。

3 个答案:

答案 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);
    }
}