web-dev-qa-db-ja.com

辞書に値を持つ新しいキーを挿入する方法

既存の辞書に対応する値を持つキーを挿入したい...

辞書の既存のキーの値を設定できますが、新しいキー値を追加できません...

任意の助けいただければ幸いです。

27
Linux world

NSMutableDictionaryを使用する

NSMutableDictionary *yourMutableDictionary = [NSMutableDictionary alloc] init];
[yourMutableDictionary setObject:@"Value" forKey:@"your key"];

Swiftの更新:

以下は、上記のコードの正確なSwiftレプリカです。

var yourMutableDictionary = NSMutableDictionary()
yourMutableDictionary.setObject("Value", forKey: "Key")

しかし、私はSwift辞書の方法で行くことをお勧めします。

var yourMutableDictionary = [String: AnyObject]() //Open close bracket represents initialization

//The reason for AnyObject is a dictionary's value can be String or
//Array or Dictionary so it is generically written as AnyObject

yourMutableDictionary["Key"] = "Value"
50
iPrabu
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];

このメソッドを使用することにより、NSMutableDictionaryに新しい値を追加できます

[dict setObject:@"Value" forKey:@"Key"];

キーが辞書に存在することを知るために

[[dict allKeys] containsObject:@"key"];
2
Madhu

NSDictionaryは不変です。代わりにNSMutableDictionaryを使用してください。

adding オブジェクト:setObject:forKey:

キーが存在するかどうかのテスト:

[[aDict allKeys] containsObject:@"key"];
2
vikingosegundo

こんにちは私は辞書の形式でjsonからコンテンツを取得しています、そしてそれから私は他のいくつかの辞書にコンテンツを追加しています

  //here contract is my json dictionary 
  NSArray *projectDBList =[contract allKeys];//listing all the keys in dict 

  NSMutableDictionary *projectsList=[[NSMutableDictionary alloc]init];

  [projectDBList enumerateObjectsUsingBlock:^(NSString * obj, NSUInteger idx, BOOL *stop) {

  [projectsList setObject:[contract objectForKey:obj] forKey:obj];

  }];
1
user3540599