Objective-C( Foundation框架 一 常见的结构体)

常见的结构体 (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 {
   CGFloat x; 点的x方向
   CGFloat y; 点的y方向
};

用法:
    
  // 表示二维平面的一个点
    CGPoint p1 = NSMakePoint(10 ,14);
    NSPoint p2 = CGPointMake(11,20);

    CGPoint c1 = { 10, 12};
  

CGSize 和 NSSize:用来表示平面的面积

struct CGSize {
   CGFloat width;  宽
   CGFloat 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));
 
原文地址:https://www.cnblogs.com/1023843587qq/p/4782085.html