1

あるNSDictionaryから別のNSDictionaryにオブジェクトをコピーする最もクリーンな方法は何ですか?辞書から特定の値を抽出して、新しい辞書に保存する必要があります。現在、私はそのようないくつかの簡単なコードを持っています...

NSString *value1 = [dictA objectForKey:@"1"];
[dictB setObject:value1 forKey:@"1"];

...しかし、私が望むよりも一般的なコードがあるように感じます。私はこれを何度もしなければなりません、そして私はこれをするよりきれいな方法があるかどうか疑問に思います。

よろしくお願いします!

4

4 に答える 4

6

最新のObjective-C構文では、実際にdictA[@"key1"] = dictB[@"key1"]は可変辞書を使用して記述できます。

于 2013-01-04T16:55:39.087 に答える
4

多くのキーに対してこれを実行する場合は、の使用を検討して+ (id)dictionaryWithSharedKeySet:(id)keysetください。最初にキーセットを作成する必要があります。sharedKeySetForKeys: これにより、2行のコードしか作成されません...

于 2013-01-04T17:03:18.350 に答える
1

なぜ一行だけではないのですか?

[dictB setObject:[dictA objectForKey:@"1"] forKey:@"1"];

上記のコードでは、必要に応じてキーを変更できます。

于 2013-01-04T16:51:23.463 に答える
1

キーが2つの辞書間で同じであると仮定すると、次のようなヘルパーメソッドを作成できます。

- (void)copyObjectFromDictA:(NSDictionary *)dictA toDictB:(NSDictionary *)dictB forKeys:(NSArray *)keys
{
  for (NSString *key in keys) 
  {
    [dictB setObject:[dictA objectForKey:key] forKey:key]];
  }
}
于 2013-01-04T16:55:40.353 に答える