问题描述
|
我有一个带有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。
, 不。那是要走的路。但是,问题是,为什么首先需要将整数转换为整数?那是可以避免的。或不。