zoukankan      html  css  js  c++  java
  • OC——Foundation—结构体

    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);
    }
     
  • 相关阅读:
    PAT 甲级 1115 Counting Nodes in a BST (30 分)
    PAT 甲级 1114 Family Property (25 分)
    PAT 甲级 1114 Family Property (25 分)
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
  • 原文地址:https://www.cnblogs.com/hqzxbb/p/4395359.html
Copyright © 2011-2022 走看看