NSRange、NSSize、NSPoint、NSRect

来源:互联网 发布:php读取access数据库 编辑:程序博客网 时间:2024/05/22 14:18

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();
0 0