天天看点

object-c包装类--NSValue和NSNumber

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为一个包装类

iOS