How to retrieve String from NSDictionary in objective C?
arrays, iphone, objective-c
Solution
You're creating a dictionary with an array as the only key and an array for its value! You want the `dictionaryWithObjects:forKeys:` (plural) factory, not `dictionaryWithObject:forKey:` (singular) so that each element of the keys array will be used as a distinct key for the respective element of the values array.
I find the `dictionaryWithObjectsAndKeys:` factory to be more useful most of the time, e.g.:
conversionOptions = [NSDictionary dictionaryWithObjectsAndKeys:@"1.7", @"red", @"2.8", @"blue", nil];
Problem
I am trying to retrieve the value for a key in a NSDictionary. The dictionary has been initialised with key value pairs both of type string. The trouble is, I cannot seem to retrieve the value with I call objectForKey or valueForKey. I am able to iterate over the dictionary and print both keys and values. Can someone point out where im going wrong? Here is my code... ``` //Set up dictionary with options keys = [NSArray arrayWithObjects:@"red", @"blue", nil]; values = [NSArray arrayWithObjects:@"1.7", @"2.8", nil]; conversionOptions = [NSDictionary dictionaryWithObject:values forKey:keys]; ``` Then this is called on the select row in a picker ``` NSLog(@"... %@", [keys objectAtIndex:row]); //prints out the key NSString *theString = [keys objectAtIndex:row]; //save it as a string NSLog(@"The string is... %@", theString); //print it out to make sure im not going crazy NSLog(@"the value is : %@",[conversionOptions objectForKey:theString]); // I just get NULL here //NSLog(@"the value is : %@",[conversionOptions valueForKey:theString]); // This doesn't work either, I just get NULL ```