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

sus*_*use 118 objective-c nsnumber

在将int值放入字典之前我已将int值设置为[NSNumber numberWithInt:2],现在当我尝试检索字典内容时,我希望它以int格式返回.. hw这样做?

这是我的代码;

NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;

[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)

retriving .........

int number = [dict ObjectForKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)

..它抛出异常,说铸造是必需的..当我这样做的时候..

int number = (int)[dict ObjectForKey:@"integer"];
Run Code Online (Sandbox Code Playgroud)

它不起作用......

如何解决这个问题呢?/

请建议..

Fel*_*ing 189

看看文档.使用intValue方法:

int number = [[dict objectForKey:@"integer"] intValue];
Run Code Online (Sandbox Code Playgroud)


Max*_*ann 58

您应该尽可能坚持使用NSInteger数据类型.所以你要创建这样的数字:

NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];
Run Code Online (Sandbox Code Playgroud)

integerValue然后解码与该方法一起使用:

NSInteger value = [number integerValue];
Run Code Online (Sandbox Code Playgroud)