NSRange、NSSize、NSPoint、NSRect
OC 封装了一些常用的Struct,例如:NSRange、NSSize 、NSPoint、NSRect等便于大家使用,之所以把他们定义为Struct 而没有封装成类,是因为,OC对象都是动态分配内存的,如果封装成类的话,面临的是更加频繁的内存分配操作,这将会消耗大量的时间,所以将其封装成工程基本的结构体,这样可以大大的节省系统开销。
NSRange
作用:用来表示某些事务的范围
定义如下:
typedef struct _NSRange{
unsigned int location;
unsigned int length;
}NSRange
有三种方式去使用这个结构
//第一种 起始位置为10 长度为4 (直接给字段赋值)
NSRange range;
range.location = 10;
range.length = 4;
//第二种 应用C的聚合结构赋值机制
NSRange range = {10,4};
//第三种 使用Cocoa提供的一个快捷函数NSMakeRange();
NSRange range = NSMakeRange(10,4);
NSPoint
作用:用于表示笛卡尔平面中的一个点,可以理解为一个坐标(x,y)
定义如下:
typedef struct _NSPoint{
float x;
float y;
}NSPoint;
NSSize
作用:用于存储长度和宽度
typedef struct _NSSize{
float width;
float height;
}NSSize;
NSRect
这是一个复合结构,由以上两个结构体组成,如果要画一个矩形就可以使用这个结构
typedef struct _NSRect{
NSPoint origin;
NSSize size;
}NSRect;
总结:
以上三个结构除了正常的赋值以外,还可以分别使用以下函数进行操作
NSMakePoint();
NSMakeSize();
NSMakeRect();