-4

重複の可能性:
xcode で配列を取得するにはどうすればよいですか?

値でキーを取得するにはどうすればよいですか?

今、私は次のようにキーで値を取得しています:

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

キーを値で取得する必要があります。

4

3 に答える 3

4
for (NSString* key in [dictionary allKeys]) {
   NSString* value = [dictionary objectForKey:key]
   if(value equalsToString:@"SearchedValue") {
      searchedValue = value;
      keyForSearchedValue = key;
}

しかし、これは推奨されるコーディング方法ではありません。代わりに、値ではなくキーで検索する必要があります。また、同じトピックに対して 3 つの新しい質問を作成しないでください。

于 2012-11-15T13:11:42.017 に答える
2
NSString *valueStr = ...;
NSArray *keys = [dict allKeysForObject:valueStr];

辞書に指定された値を持つすべてのキーを含む配列を返します。

于 2012-11-15T13:30:25.790 に答える
1

NSDictionary(他のマップコレクションクラスと同様に)キーごとに値を保持するように設計されているため、これはコストのかかる操作です。

ただし、このように行うことができます(キーと値の両方がであると想定NSString):

NSString *wantValue = @"tulips";
for (NSString *name in dict)
{
    NSString *value = [dict objectForKey:name];
    if ([value isEqualToString:wantValue])
    {
        NSLog(@"name '%@' matches", name);
    }
}
于 2012-11-15T13:13:46.420 に答える