在 Objective-C 中将 NSNumber 转换为 int
我使用 [NSNumber numberWithInt:42]
或 @(42)
将 int 转换为 NSNumber,然后将其添加到 NSDictionary:
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"];
I use [NSNumber numberWithInt:42]
or @(42)
to convert an int to NSNumber before adding it to an NSDictionary:
int intValue = 42;
NSNumber *numberValue = [NSNumber numberWithInt:intValue];
NSDictionary *dict = @{ @"integer" : numberValue };
When I retrieve the value from the NSDictionary, how can I transform it from NSNumber back to int?
NSNumber *number = dict[@"integer"];
int *intNumber = // ...?
It throws an exception saying casting is required when I do it this way:
int number = (int)dict[@"integer"];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
查看文档< /a>.使用
intValue
方法:Have a look at the documentation. Use the
intValue
method:如果可能,您应该坚持使用
NSInteger
数据类型。因此,您可以像这样创建数字:解码使用
integerValue
方法,然后:You should stick to the
NSInteger
data types when possible. So you'd create the number like that:Decoding works with the
integerValue
method then:使用 NSNumber 方法
intValue
这里是 Apple 参考文档
Use the NSNumber method
intValue
Here is Apple reference documentation
一种不太冗长的方法:
A less verbose approach:
经过测试的单行:
A tested one-liner: