Objective-C:将id转换为NSInteger

问题描述

| 我有一个带有NSNumber的字典,我想将其转换为NSInteger。最简单/最简单的方法是将类型转换为NSNumber,然后调用integerValue吗?像这样:
// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [(NSNumber *)[newQuestion objectForKey:@\"question_id\"] integerValue];
有一个更好的方法吗?谢谢!     

解决方法

        如果要缩短演员表,可以摆脱它:
// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [[newQuestion objectForKey:@\"question_id\"] integerValue];
由于
objectForKey:
返回
id
,因此您可以向其发送任何已知消息,并且编译器不会抱怨。     ,        是的,您不需要投射。
NSInteger questionId = [[newQuestion objectForKey:@\"question_id\"] integerValue];
在这种特殊情况下,强制转换实际上不执行任何操作。如果字典中的项目不是
NSNumber
(例如it6ѭ),那么
questionId
将为0。     ,        不。那是要走的路。但是,问题是,为什么首先需要将整数转换为整数?那是可以避免的。或不。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...