在将int添加到NSDictionary之前,我使用[NSNumber numberWithInt:42]@(42)将int转换为NSNumber:

int intValue = 42;
NSNumber *numberValue = [NSNumber numberWithInt:intValue];
NSDictionary *dict = @{ @"integer" : numberValue };

从NSDictionary中检索值时,如何将其从NSNumber转换回int?

NSNumber *number = dict[@"integer"];
int *intNumber = // ...?

当我这样做时,它抛出一个异常,表示需要强制执行:

int number = (int)dict[@"integer"];

推荐答案

看看documentation美元.使用intValue方法:

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

Objective-c相关问答推荐

在 Objective-C 中定义协议的类别?

animateWithDuration:animations: 会阻塞主线程吗?

表达式不可分配 - 将浮点数分配为 Xcode 中其他两个浮点数的总和时出现问题?

让 iPhone sleeping

NSTimeZone:localTimeZone 和 systemTimeZone 有什么区别?

常量的 k 前缀从何而来?

在 Objective-C 类中混合 C 函数

从 NSString 创建 SHA1 哈希

如何连续关闭 2 个模态视图控制器?

以原子方式写入文件与不写入文件之间的区别

NSMutableDictionary 线程安全

如何更改 UICollectionView 中的滚动方向?

如何确定 UICollectionView flowLayout 中单元格之间的间距

Cocoa 与 Cocoa Touch - 有什么区别?

Objective C 中的调用方法或发送消息

带有 NSBlockOperation 和队列的 NSURLSession

在我滚动之前,数据不会加载到 UITableView 中

如何在不管理 UDID 和重新编译的情况下无线分发 ios 应用程序

iPhone:如何确定线程是否是主线程?

无法更改 UILabel 文本 colored颜色