在将int值放入字典之前我已将int值设置为[NSNumber numberWithInt:2],现在当我尝试检索字典内容时,我希望以int格式返回... hw这样做?< / p>
这是我的代码;
NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;
[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];
retriving .........
int number = [dict ObjectForKey:@"integer"];
.. 它抛出一个例外,说铸造是必需的.. 当我这样做的时候..
int number = (int)[dict ObjectForKey:@"integer"];
stil它不起作用......
如何解决这个问题?/
请建议..
答案 0 :(得分:188)
查看documentation。使用intValue
方法:
int number = [[dict objectForKey:@"integer"] intValue];
答案 1 :(得分:57)
您应该尽可能坚持NSInteger
数据类型。所以你要创建这样的数字:
NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];
解码适用于integerValue
方法:
NSInteger value = [number integerValue];
答案 2 :(得分:4)
使用NSNumber方法intValue
答案 3 :(得分:0)
一种不那么冗长的方法:
int number = [dict[@"integer"] intValue];
答案 4 :(得分:0)
单线测试:
int number = ((NSNumber*)[dict objectForKey:@"integer"]).intValue;