NSRange(是一个结构体)
在Foundation/NSRange.h中对NSRange的定义
typedef struct _NSRange{
NSUInteger location;
NSUInteger length;
}NSRange;
//typedef unsigned long NSUInteger;
- 这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围
- location表示该范围的起始位置
- length表示该范围内所包含的元素个数
- 比如“ I love objective-c”中的”obj”可以用location为7,长度为3的范围来表示
有3种方法创建一个NSRange变量
- 第1种:直接给成员变量赋值
NSRange range;
range.location =7;
range.length=3;
- 第2种:应用c语言的聚合结构赋值机制
NSRange range =(7,3);
- 第3种:Foundation框架提供的一个快捷函数
NSMakeRange NSRange range = NSMakeRange(7,3);
NSPoint(是一个结构体)
- 在Foundation/NSGeometry.h中对NSPoint的定义
typedef CGPoint NSPoint;
- 在CoreGraphics/CGGeometry.h中对CGPoint的相关定义
struct CGPoint{ CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint;
// #define CGFLOAT_TYPE double;
// typedef CGFLOAT_TYPE CGFloat;
- NSPoint 和CGPoint是等价的
- 这个结构体代表的时平面中的一个点(x,y)
例子:
void point(){ //第一种创建方式 CGPoint p; p.x=10; p.y=10; //第二种创建方式 p=NSMakePoint(10,9); //第三种创建方式,最常用 p=CGPointMake(10,8); }
NSSize(是一个结构体)
- 在Foundation/NSGeometry.h中对NSSize的定义
typedef CGSize NSSize;
- 在CoreGraphics/CGGeometry.h中对CGSize的定义
struct CGSize{ CGFloat width; CGFloat height; } typedef struct CGSize CGSize;
- 这个结构用来存储宽度和高度
- 可以利用NSMakeSize()和CGSizeMake()创建CGSize
NSRect(是一个结构体)
- 在Foundation/NSGeometry.h中对NSRect的定义
typedef CGRect NSRect;
- 在CoreGraphics/CGGeometry.h中对CGRect的定义
struct CGPoint{ CGPoint origin; CGPoint size; }; typedef struct CGRect CGRect
- 这个结构体用来存储宽度和高度
- 可以利用NSMakeRect()和CGRectMake()创建CGRect
例:
void rect(){ //第一种创建方法 NSRect rect; rect.size.width=100; rect.size.height=200; rect.origin.x=2; rect.origin.y=1; //第二种创建方法 rect=NSMakeRect(2,3,100,200); //第三种方法 rect=CGRectMake(2,3,100,200); }