有人可以帮我解决一个非常基本的问题。
我试图通过一个对象数组(_options)获取存储在字典中的值,属性部分介于1和3之间
_sections = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"1", @1, @"2", @2, @"3", @3, nil];
NSLog(@"sections=%lu",(unsigned long)[_sections count]);
for(Options *thisOption in _options)
{
NSString *key = [NSString stringWithFormat:@"%@", thisOption.section];
NSLog(@"key=%@",key);
NSNumber *count = [_sections objectForKey:key];
NSLog(@"count=%@",count);
}
我的日志显示sections = 3,key = 2但count =(null)
答案 0 :(得分:1)
你可以在dictionaryWithObjectsAndKeys中反转你的对象和键的顺序:。
我建议使用文字来使代码更清晰:
(假设你的词典必须是可变的)
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:@{@"1": @1, @"2": @2}];
(如果忘记了可变部分)
NSDictionary *d = @{@"1": @1, @"2": @2};
答案 1 :(得分:1)
您的密钥是字符串@“2”,但字典中的密钥是NSNumber 2.这两个对象不一样,所以当您尝试使用该密钥查找对象时,它不会找到任何东西并返回nil。