常见的结构体 (NSPoint,CGPoint)、(NSRange,CGRange)、(NSSize,CGSize)
苹果官方推荐使用CG开头的结构体
NSRange是Foundation框架中常见的结构体它的定义如下:
typedef struct _NSRange
{
// 范围的起始位置
NSUInteger location;
// 范围的长度
NSUInteger length
}
NSUInteger的定义:
typedef unsigned int NSInteger;
typedef unsigned long NSUInteger;
NSRange创建的几种方式
NSRange range; range.location = 2; range.length = 3; range= (NSRange){ 3, 5}; NSRange r = NSMakeRange(2, 4);
CGPoint 和 NSPoint :用来表示二维平面的一个点
CGPoint 是NSPoint的一个别名
struct CGPoint { x; 点的x方向 y; 点的y方向}; 用法:
// 表示二维平面的一个点 CGPoint p1 = NSMakePoint(10 ,14); NSPoint p2 = CGPointMake(11,20); CGPoint c1 = { 10, 12};
CGSize 和 NSSize:用来表示平面的面积
struct CGSize { width; 宽 height; 高};
CGSize s1; s1.width = 10; s1.height = 20; // OC中特有的方式 CGSize s2 = CGSizeMake(14, 13);
CGRect 和 NSRect:表示在平面上左上角是某个点的矩形区域
struct CGRect { var origin: CGPoint // 表示矩形左上角的点 var size: CGSize // 表示矩形的大小 init() init(origin origin: CGPoint, size size: CGSize) }
CGRect r = { { 0, 1},{ 20, 30}}; // OC特有方式 CGRect r1 = CGRectMake(1, 2, 10, 60); NSRect r2 = NSMakeRect(2, 5, 80, 90); // 打印方式 NSLog(@"r1 = %@", NSStringFromRect(r1));