zoukankan      html  css  js  c++  java
  • NSUInteger和NSInteger和int

    int和NSInteger其实是差不多的,但更推荐使用NSInteger,因为使用NSInteger,这样就不用考虑设备是32位还是64位了。

    NSUInteger是无符号的,即没有负数,NSInteger是有符号的,所以NSUInteger类型不能给它赋负值。比如以下这段代码,a=-1的时候,是能进入循环的。

    NSUInteger a = -1; 
    for(int i=0;i<a;i++){    
        NSLog(@"%d,%lu",i,(unsigned long)a);
        break;
    }
    输出:0,18446744073709551615
    这时a的值其实等于18446744073709551615

    还有NSUInteger和NSInteger和int都是基础类型,是不能放入NSArray中的,需要转换成NSNumber,应为NSNumber是类,NSArray中只能放入类。
    用以下NSNumber的类方法转即可

    • (NSNumber *) numberWithChar: (char) value;
    • (NSNumber *) numberWithInt: (int) value;
    • (NSNumber *) numberWithFloat: (float) value;
    • (NSNumber *) numberWithBool: (BOOL) value;



    文/齐滇大圣(简书作者)
    原文链接:http://www.jianshu.com/p/c883674b6de5
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    linux 下怎么看postgresql安装到哪个目录了?
    sqlserver 存储image 语句
    thinkphp5.1 配置使用
    百度车牌识别demo
    elastticsearch 安装
    InDB开发
    John爆破密码
    域传送漏洞
    新远程下载方式(IME)
    SSH端口转发
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5868289.html
Copyright © 2011-2022 走看看