首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回转换为NSNumber的NSInteger

如何返回转换为NSNumber的NSInteger
EN

Stack Overflow用户
提问于 2014-09-25 17:27:32
回答 2查看 1.3K关注 0票数 3

由于NSNumber是一个类,我正在尝试将它转换为一个NSInteger来进行一些计算。在NSLog中,它表明我正在正确地转换和执行乘法。然而,当我作为一个常规的NSInteger返回倍频器时,我得到了“NSInteger的隐式转换(又名'long')到'NSNumber*‘是不允许的。”我哪里出错了,我该怎么做才能纠正这个错误呢?

代码语言:javascript
复制
- (NSNumber *) numberThatIsTwiceAsBigAsNumber:(NSNumber *)number {

NSInteger doubler = [number integerValue] * 2;
NSLog(@"%ld", (long)doubler);

return doubler;
}

编辑:对于那些好奇的人,我就是这样解决这个问题的:

代码语言:javascript
复制
NSInteger unboxing = [number integerValue] * 2;
NSNumber *boxing = [NSNumber numberWithInteger:unboxing];

return boxing;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-25 17:32:14

您需要将数字返回为NSNumber,而不是NSInteger。因此,在返回之前,将NSInteger转换为NSNumber。

代码语言:javascript
复制
return @(doubler);
票数 3
EN

Stack Overflow用户

发布于 2014-09-25 17:31:55

将返回类型更改为

代码语言:javascript
复制
- (NSInteger)

如果您打算继续这样使用它,或者显式地转换它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26044602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档