OC中的很多类型都是对一个或多个类型进行包装再组合成一个新的结构体,在用typedef起一个别名,然后就变成了新的类型,当然在开发中,我们自己也会定义很多的结构体。
/**常用结构体**/ void structTest(){ /******范围******/ // typedef struct _NSRange { // NSUInteger location; // NSUInteger length; // } NSRange; //location 10 length 9 NSRange ns={10,9}; NSRange n={.length=10,.location=20}; //最常用的方式 NSRange range=NSMakeRange(20, 7); NSLog(@"location=%zd,length=%zd",range.location,range.length); NSLog(@"range=%@",NSStringFromRange(range)); /******位置 坐标******/ NSPoint point=NSMakePoint(10, 20);
CGPoint p1=NSMakePoint(2, 1);
//开发中CGPoint最常用 CGPoint p2=CGPointMake(5, 5);
/******宽高******/ NSSize size=NSMakeSize(10, 20); //开发中CGSize最常用 CGSize si=CGSizeMake(20, 3);
/******坐标宽高******/ NSRect rect=NSMakeRect(1, 1, 20, 40);
//开发中最常用CGRect CGRect c=CGRectMake(10, 12, 200, 100); NSLog(@"rect=%@",NSStringFromRect(c)); } |
总结:
NSRange:位置/长度
NSPoint(常用CGPoint):坐标
NSSize(常用CGSize):宽高
NSRect(常用CGRect):坐标、宽高