数字对象的简介:
在之前的学习中,已经对基本数据类型有了一定的了解。但是他们不是对象们不能像他们发送消息。然而有时候也需要经他们当做对象来处理,比如我们需要把基本类型放在集合中(因为在cocoa中只能把对象放在集合里面,不能把基本数字类型放在集合里面),纳那么就需要将基本数字类型转换成数字对象。OC中提供了数值对象(NSNumber)可以将基本数字类型“包装”成对象,这也我们就可以使用基本数字类型的对象了。
NSNumber的使用:
NSNumber的创建:
1创建一个NSNumber的指针对象,让其指向包装好的基本数字类型
NSNumber *typeNumber = 【NSNumber numberWithType:typeValue】;
2解包:
Type typrValue = 【typeNumber typeValue】;
优化与法:
NSNumber *typeValue = @typeValue;
NSNumber * intNumber = @12;
NSValue的使用方法:
结构体是C语言里面定义的,C是面向过程的语言,C没有对象,所以结构体不是对象,不能把结构体当做对象来操作,那么就需要像基本数据类型一样对结构体进行包装,NSNumber里面没有对结构体进行包装的方法,但是它的父类NSvalue里面有。
NSValue可以对结构体(NSRange)进行包装
创建(封包):
NSRange range = {10,20};
NSValue *rangeValue = 【NSValue valueWithRange:range】;
解包(解包):
NSRange range = 【rangeValue rangeValue】;
3自己定义的结构体的封包:
struct WXPoint{
float a ;
float b ;
}
struct WXPoint p 1= {100,100};
NSValue *wxpoint = 【NSValue value:&p1 withObjectType:@encode(struct WXPoint)】;
4自己定义的结构体的解包:
struct WXPoint p2;
【wxpoint getValue:p2】;
NSNull的使用方法:
nil不能存入到集合里面(数组,NSSet,字典),所以要封装成对象。就要用到NSNull方法。
NSNull *n1 = 【NSNull null】;