Возможно, вы не объявляете ключи и значения.NSDictionary требует от вас инициализации со значениями и ключами.(Независимо от того, извлекаете ли они их из файла или объявляете их при инициализации.
NSDictionary * userNames = [[NSDictionary alloc] initWithObjectsAndKeys:
@"value1", @"key1",
@"value2", @"key2",
nil];
NSString * testValue = [userNames valueForKey:@"key2"];
NSLog(@"%@", testValue);
Также обратите внимание, что значение записывается раньше, а затем определяется ключ. См. Этот документ .
Если вы хотите сначала объявить словарь (как вы сделали в своем вопросе), а затем добавить значения и ключи в словарь, вы должны использовать NSMutableDictionary.
NSMutableDictionary *userNames1 = [[NSMutableDictionary alloc] init];
[userNames1 setValue:@"firstValue" forKey:@"key1"];
[userNames1 setValue:@"secondValue" forKey:@"key2"];
NSLog(@"%@", [userNames1 valueForKey:@"key2"]);