美文网首页#iOS#HeminWon
NSUInteger和NSInteger和int

NSUInteger和NSInteger和int

作者: 齐滇大圣 | 来源:发表于2015-07-26 12:51 被阅读11653次

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;

相关文章

网友评论

    本文标题:NSUInteger和NSInteger和int

    本文链接:https://www.haomeiwen.com/subject/crdmqttx.html