如何在NSDictionary中添加和检索整数(键和值)

时间:2011-07-31 18:24:27

标签: objective-c

如何将键(int)和值(int)对添加到NSDictionary对象?以及如何将它们作为int检索?

谢谢!

2 个答案:

答案 0 :(得分:6)

字典键和值必须是对象引用(id),因此您不能使用整数作为键。您应该将整数包装在NSNumber

[NSNumber numberWithInt:5]

然后,您可以使用其中一个NSDictionary初始值设定项初始化initWithObjects。我选择了initWithObjectsAsKeys:初始值设定项,它接受值,键,值,键.. nil格式的键/值。

NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:[NSNumber numberWithInt:15], [NSNumber numberWithInt:5], nil];

要访问该值,您需要执行相同的操作:

NSLog(@"%@", [dict objectForKey:[NSNumber numberWithInt:5]]);

编辑:根据您的评论,您似乎应该使用NSMutableDictionary,而不是NSDictionary。同样的事情适用于包装整数,但是你需要使用setObject:forKey方法:

NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:[NSNumber numberWithInt:15] forKey:[NSNumber numberWithInt:5]];   

这有帮助吗?

答案 1 :(得分:5)

将其包裹在NSNumber

int intKey = 1;
int intValue = 2;
[myDict setObject:[NSNumber numberWithInt:intValue] forKey:[NSNumber numberWithInt:intKey]];
NSLog(@"key: %i, value: %i", intKey, [[myDict objectForKey:[NSNumber numberWithInt:intKey] intValue]);

编辑:您需要使用NSMutableDictionary来设置值。 NSDictionary在创建后无法修改。