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
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    spring注解
    SVN cleanup 反复失败解决办法
    如何改变cmd窗口大小
    JQuery UI
    VS2013装扩展RazorGenerator
    visual studio 2013使用github获取代码
    还原NuGet程序包
    C# linq对分组操作执行子查询
    C# linq创建嵌套组
    linq 在查询表达式中处理异常
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5868289.html
Copyright © 2011-2022 走看看