重複の可能性:
xcode で配列を取得するにはどうすればよいですか?
値でキーを取得するにはどうすればよいですか?
今、私は次のようにキーで値を取得しています:
NSString *valueStr = [dict objectForKey:@"Key2"];
キーを値で取得する必要があります。
重複の可能性:
xcode で配列を取得するにはどうすればよいですか?
値でキーを取得するにはどうすればよいですか?
今、私は次のようにキーで値を取得しています:
NSString *valueStr = [dict objectForKey:@"Key2"];
キーを値で取得する必要があります。
for (NSString* key in [dictionary allKeys]) {
NSString* value = [dictionary objectForKey:key]
if(value equalsToString:@"SearchedValue") {
searchedValue = value;
keyForSearchedValue = key;
}
しかし、これは推奨されるコーディング方法ではありません。代わりに、値ではなくキーで検索する必要があります。また、同じトピックに対して 3 つの新しい質問を作成しないでください。
NSString *valueStr = ...;
NSArray *keys = [dict allKeysForObject:valueStr];
辞書に指定された値を持つすべてのキーを含む配列を返します。
NSDictionary
(他のマップコレクションクラスと同様に)キーごとに値を保持するように設計されているため、これはコストのかかる操作です。
ただし、このように行うことができます(キーと値の両方がであると想定NSString
):
NSString *wantValue = @"tulips";
for (NSString *name in dict)
{
NSString *value = [dict objectForKey:name];
if ([value isEqualToString:wantValue])
{
NSLog(@"name '%@' matches", name);
}
}