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
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    ajax与Servlet
    Myeclipse快捷键的设置以及默认的编码格式
    bootstrap02导航菜单
    bootstrap01登录小例子
    ajax
    面向对象04异常
    mysql
    Day10 Python基础之特殊函数(八)
    Day9 Python基础之函数基础(七)
    Day8 Python基础之遗漏知识点(六)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5868289.html
Copyright © 2011-2022 走看看