如何在Objective-C中将NSNumber转换为int

时间:2010-08-24 11:25:39

标签: objective-c nsnumber

在将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它不起作用......

如何解决这个问题?/

请建议..

5 个答案:

答案 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

这是Apple reference documentation

答案 3 :(得分:0)

一种不那么冗长的方法:

int number =  [dict[@"integer"] intValue];

答案 4 :(得分:0)

单线测试:

int number = ((NSNumber*)[dict objectForKey:@"integer"]).intValue;