int,NSInteger,NSUInteger,NSNumber区别
来源:互联网 发布:乐清知临寄宿学校 编辑:程序博客网 时间:2024/05/21 10:35
1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。
2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
3.NSNumber类型有点类似id类型,对于任何类型的数字对象都能用它来声明,也就是用它来声明数字对象,通过声明,很难判断声明变量是什么数字类型,确定数字对象类型多是在初始化的时候才能确定。
数字对象的创建或者初始化:
格式:
NSNumber 数字对象 = [NSNumber numberWith数字类型:数值];
NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short int, int, long int, long long int, float, or double or as a BOOL,它提供了一个compare:方法来决定两个NSNumber对象的排序;
创建一个NSNumber对象有以下方法:
- + numberWithBool:
- + numberWithChar:
- + numberWithDouble:
- + numberWithFloat:
- + numberWithInt:
- + numberWithInteger:
- + numberWithLong:
- + numberWithLongLong:
- + numberWithShort:
- + numberWithUnsignedChar:
- + numberWithUnsignedInt:
- + numberWithUnsignedInteger:
- + numberWithUnsignedLong:
- + numberWithUnsignedLongLong:
- + numberWithUnsignedShort:
初始化方法:
- – initWithBool:
- – initWithChar:
- – initWithDouble:
- – initWithFloat:
- – initWithInt:
- – initWithInteger:
- – initWithLong:
- – initWithLongLong:
- – initWithShort:
- – initWithUnsignedChar:
- – initWithUnsignedInt:
- – initWithUnsignedInteger:
- – initWithUnsignedLong:
- – initWithUnsignedLongLong:
- – initWithUnsignedShort:
- – boolValue
- – charValue
- – decimalValue
- – doubleValue
- – floatValue
- – intValue
- – integerValue
- – longLongValue
- – longValue
- – shortValue
- – unsignedCharValue
- – unsignedIntegerValue
- – unsignedIntValue
- – unsignedLongLongValue
- – unsignedLongValue
- – unsignedShortValue
NSInteger是基础类型,但是NSNumber是一个类。如果想要存储一个数值,直接用NSInteger是不行的,比如在一个Array里面这样用:
[array addObject:3];//会编译错误
[array addObject:[NSNumber numberWithInt:3]];
Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。
例如以下创建方法:
+ (NSNumber *) numberWithChar: (char) value;
+ (NSNumber *) numberWithInt: (int) value;
+ (NSNumber *) numberWithFloat: (float) value;
+ (NSNumber *) numberWithBool: (BOOL) value;
+ (NSNumber *) numberWithInt: (int) value;
+ (NSNumber *) numberWithFloat: (float) value;
+ (NSNumber *) numberWithBool: (BOOL) value;
将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:
- (char) charValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *) stringValue;
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *) stringValue;
0 0
- int,NSInteger,NSUInteger,NSNumber区别
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int,NSInteger,NSUInteger,NSNumber
- int, NSInteger, NSUInteger, NSNumber的区别
- int、 NSInteger、 NSUInteger、NSNumber之间的区别
- IOS int,NSInteger,NSUInteger,NSNumber
- 区分 int,NSInteger,NSUInteger,NSNumber
- objc--int NSUInteger NSInteger NSNumber
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- int、NSInteger、NSUInteger、NSNumber的区别和联系
- [IOS]int,NSInteger,NSUInteger,NSNumber使用
- Java之Socket开发
- IE FireFox 兼容之 window.event
- Remove specific commit
- IE和Firefox下event事件杂谈
- Firefox下的window.event问题
- int,NSInteger,NSUInteger,NSNumber区别
- 怀恋抗日的英雄
- JavaScript冒泡实例
- 黑马程序员-c语言结构体,联合以及枚举
- 第二十一次codeforces竞技结束 #277 Div 2
- 黑马程序员-c语言宏定义以及外部变量
- Spark - A tiny Sinatra inspired framework for creating web applications in Java 8 with minimal effor
- Spark Getting started
- 第二十二次codeforces竞技结束 #278 Div 2