NSRange、NSPoint(CGPoint)、NSSize(CGSize)、NSRect(CGRect)

1、NSRange:

1 typedef struct _NSRange {
2 
3       NSUInteger location;
4 
5       NSUInteger length;
6 
7     } NSRange;

  NSRange本身是系统自定义的一个结构体的变量名;这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围;location表示该范围的起始位置,length表示该范围内所含的元素个数;比如”I love objective-c”中的”obj”可以用location为7,length为3的范围来表示。

1 NSRange range = NSMakeRange(8, 10);  //其中NSMakeRange()函数是专门用来创建一个结构体并给NSRange类型结构体进行赋值的,按照系统底层结构体的声明顺序,8为location,10为Length。
2 
3 NSRange range = NSMakeRange(8, 10);
4 NSString *str = NSStringFromRange(range);
5 NSLog(@"%@", str);
6 
7 //其中NSStringFromRange()方法会把range这个结构体变成一个字符串便于打印。

2、NSPoint(CGPoint):

  NSPoint和CGPoint是等价的;是系统自定义的一个结构体的变量名;

 1 CGPoint p;
 2 
 3 //p.x = 1;
 4 //p.y = 10;
 5 
 6 p = NSMakePoint(10, 9);
 7 p = CGPointMake(8, 9); // 常见的方式
 8 NSString *str = NSStringFromPoint(p);
 9 
10 NSLog(@"%@", str);

  NSMakePoint()和CGPointMake()两个函数都可以快速创建一个CGPoint类型的结构体并进行赋值。NSStringFromPoint()函数会把p这个结构体变成一个字符串便于打印。

3、NSSize(CGSize):

  NSSize和CGSize是等价的;是系统自定义的一个结构体的变量名;

 1 CGSize size; // NSSize size;
 2 
 3 //size.width = 100;
 4 //size.height = 90;
 5 
 6 size = NSMakeSize(90, 80);
 7 size = CGSizeMake(10, 8);
 8 
 9 NSString *str = NSStringFromSize(size);
10 NSLog(@"%@", str);

  NSMakeSize()和CGSizeMake()两个函数都可以快速创建一个CGSize类型的结构体并进行赋值。NSStringFromSize()函数会把size这个结构体变成一个字符串便于打印。

4、NSRect(CGRect):

  NSRect和CGRect是等价的;是系统自定义的一个结构体的变量名;CGRect中同时包括了CGPoint和CGSize。

 1 NSRect rect; // CGRect rect;
 2 
 3 //rect.origin.x = 10;
 4 //rect.origin.y = 11;
 5 //rect.size.width = 100;
 6 //rect.size.height = 90;
 7 
 8 rect = NSMakeRect(10, 10, 80, 80);
 9 rect = CGRectMake(8, 9, 10, 90);
10 
11 NSString *str = NSStringFromRect(rect);
12 NSLog(@"%@", str);

  NSMakeRect()和CGRectMake()两个函数都可以快速创建一个CGRect类型的结构体并进行赋值。NSStringFromRect()函数会把rect这个结构体变成一个字符串便于打印。

原文地址:https://www.cnblogs.com/CJDog/p/5121836.html