从NSDictionary我只得到0或null我该怎么办?

时间:2011-10-24 11:05:44

标签: iphone objective-c ios nsdictionary

这是我的代码段

NSArray * alphabets = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z",nil];
NSMutableDictionary * alphaToNum = [NSMutableDictionary dictionary];

NSInteger index =0;

for (NSString * character in alphabets) {

    index++;
    [alphaToNum setObject:character forKey:[NSNumber numberWithInteger:index]];
}

NSLog(@"%@",[alphaToNum objectForKey:@"d"]);

每当我尝试为我的密钥获取某些值时,我只得到0。

3 个答案:

答案 0 :(得分:2)

你需要......

NSLog(@"%@",[alphaToNum objectForKey:[NSNumber numberWithInteger:[alphabets indexOfObject:@"d"]]]);

答案 1 :(得分:0)

您的密钥是NSNumber s,您的对象是从a到z的字母。键@“d”没有对象。对于键[NSNumber numberWithInt:4],将有一个对象,字符串@“d”。你有没有把钥匙和物品弄错了?你真的想做什么?

答案 2 :(得分:0)

以下代码将产生您想要的结果。

NSLog(@"%@",[alphaToNum objectForKey:[NSNumber numberWithInteger:4]]);

NSlog的问题是这个。

密钥由NSNumbers组成,它们从1开始,而不是字母表。 =>由于没有带有字母“d”的密钥,它会向您发送null作为回报。