锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / ios开源技术 / 从NSInteger到NSNumber的隐含转换被禁止
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究


从NSInteger到NSNumber的隐含转换被禁止

I've written this piece of code:我写了这段代码:

    for (int i = 1; i < 1000; i++) {
          for (int j = 1; j < 1000; j++) {
              int k = i * j;                //This is the line were the error messages appears
              NSString *number = [NSString stringWithFormat:@"%d", k];
              NSNumber *length = number.length;
              NSNumber *half = (length / 2);  

What I want it to do, is to take the int k, convert it into a NSString named number, store the length of the string number in the NSNumber length, and half of that value in the NSNumber half.

我想要它做的是,获取int k,将其转换到NSString number,NSNumber length中存储number字符串的长度,并在NSNumber half 中存储该length值的一半。

但是,当尝试将int转换k为NSString时,number我收到错误消息:

However, when trying to convert the int k to the NSString number I get the error message:

"Implicit conversion of 'NSInteger' (aka 'unsigned int') to 'NSNumber *' is disallowed with arc"从NSInteger到NSNumber的隐含转换被禁止

Could someone help me figure out why?

 

number.length returns integer not NSNumber.number.length返回整数而不是NSNumber。

Correct it to :纠正它:

NSInteger length = number.length;
NSInteger half = (length / 2);  

If you really want to use NSNumber do like this: (Here I am boxing the integer to NSNumber object)如果你真的想使用NSNumber这样做:(这里我将整数装箱到NSNumber对象)

NSNumber *length = @(number.length); //same as [NSNumber numberWithInt:number.length]
NSNumber *half = @(number.length / 2);
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内