How to insert a new key with value in dictionary

2019-01-26 02:43发布

问题:

I want to insert a key with a corresponding value in an existing dictionary...

I am able to set values for existing keys in the dictionary, but I am not able to add a new key value...

Any help would be appreciated.

回答1:

Use NSMutableDictionary

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

Update for Swift:

The following is the exact swift replica for the code mentioned above

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

But i would suggest you to go with Swift Dictionary way.

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"


回答2:

NSDictionnary is immutable. Use NSMuteableDictiory instead.

adding Objects: setObject:forKey:

edit
testing if key is present:

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


回答3:

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

By using this method we can add the new value to NSMutableDictionary

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

To know wheather the key exist in dictionary

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


回答4:

Hi I am getting the content from json in the format of dictionary and from that i am adding the content into some other dictionary

  //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];

  }];