c语言中的short、int、float、double等都不是对象,所以提供了NSValue、NSNumber来封装C语言的基本类型,使其具备面向对象的特征。类似于Java中的Integer、Double.
注意一下并非包装类;NSInteger------大致等于long,NSUInteger--------大致等于unsigned long,GGFLoat在64位平台上大致等于double,在32位平台上大概等于float。
NSValue与NSNumber
l两者都是包装类,其中NSValue是NSNumber的父类。前者可以用于包装单个short、int、long、float、char、指针、对象、id等数据类型,通过其可以把short、int等添加到NSArray和NASet中。
NSNumber是更具体的包装类,用以包装C语言中的数值类型。
+numberWithxxx;=============将特定类型的数值转化为包装类
NSNumbei*num=[NSNumber numberWithInt:20];
-initWithxxx--------------------创建一个NSNumber对象,在用一个基本数据类型来初始化NSNumber
NSNumber* cha=[[NSNumber alloc]intWithChar:'j'];
-xxxValue-------------返回该包装类的数值
[num intValue] -----num为一个包装类