Objective-C:将id转换为NSInteger

pix*_*eak 29 objective-c

我有一个带有NSNumber的字典,我想把它转换成NSInteger.最简单/最简单的方法是将类型转换为NSNumber然后调用integerValue?像这样:

// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [(NSNumber *)[newQuestion objectForKey:@"question_id"] integerValue];
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?谢谢!

alb*_*amg 75

如果你想让它更短,你可以摆脱演员表:

// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [[newQuestion objectForKey:@"question_id"] integerValue];
Run Code Online (Sandbox Code Playgroud)

由于objectForKey:回报率id,你可以把它任何已知的消息,并且编译器不会抱怨.