85、int 、NSInteger、NSUInteger、NSNumber的区别和联系
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 NSNumber类型有点类似id类型,对于任何类型的数字对象都能用它来声明,也就是用它来声明数字对象,通过声明,很难判断声明变量是什么数字类型,确定数字对象类型多是在初始化的时候才能确定。 数字对象的创建或者初始化: 格式: NSNumber 数字对象 = [NSNumber numberWith数字类型:数值]; intNumber = [NSNumber numberWithInt:100]; longNumber = [NSNumber numberWithLong:0xabcdef]; floatNumber = [NSNumber numberWithFloat:10.01];
2、?int、 NSInteger、 NSUInteger、NSNumber之间的区别和联系 int : 当使用int类型定义变量的时候,可以像写C程序一样,用int也可以用NSInteger,推荐使用NSInteger ,因为这样就不用考虑设备是32位还是64位了。 NSUInteger是无符号的,即没有负数,NSInteger是有符号的。 NSInteger是基础类型,NSNumber是一个类,如果需要存储一个数值,直接使用NSInteger是不行的,比如在一个数组里使用下面的语句就会报错: NSArray *array = [NSArray alloc] init];
[array addObject:3];
因为array里应该是一个类,但‘3’不是,所以需要用NSNumber: NSArray *array = [NSArray alloc] init];
[array addObject:[NSNumber numberWithInt:3]];苹果官方文档地址https://developer.apple.com/documentation/foundation/nsnumber
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – SVN:将本地更改合并到其他工作副本中
- Windows Server 2016-管理站点复制(一)
- 如何在Windows CE下通过LoadLibraryW()获取HINSTANCE之后获
- windows下z3安装
- 作为Windows管理员,您在尝试学习Linux发行版时遇到了哪些问
- CVE-2019-0708远程桌面代码执行漏洞复现
- windows-server-2008 – 选择Windows Small Biz Server版本
- active-directory – Active Directory管理中心更新对象时崩
- 【Win10】实现控件倒影效果
- windows-server-2008 – 使用WSUS更新不在域上的计算机