我有一个带有NSNumber的字典,我想把它转换成NSInteger。最简单/最简单的方法是将类型转换为NSNumber然后调用integerValue?像这样:
// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [(NSNumber *)[newQuestion objectForKey:@"question_id"] integerValue];
有更好的方法吗?谢谢!
答案 0 :(得分:74)
如果你想缩短演员阵容,你可以摆脱演员阵容:
// newQuestion is an NSDictionary defined somewhere
NSInteger questionId = [[newQuestion objectForKey:@"question_id"] integerValue];
由于objectForKey:
返回id
,您可以发送任何已知消息,编译器也不会抱怨。
答案 1 :(得分:4)
是的,你不需要施放。
NSInteger questionId = [[newQuestion objectForKey:@"question_id"] integerValue];
在这种特殊情况下,演员实际上并没有做任何事情。如果词典中的项目不是NSNumber
(例如,nil
),则questionId
将为0。
答案 2 :(得分:3)
不。这是要走的路。但问题是,为什么你需要首先变成一个整数?这可能是可以避免的。或者不是。