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);
    }
     
  • 相关阅读:
    京东Java面试题(二)
    京东Java面试题(一)
    阿里java面试题
    Java垃圾回收机制
    MyBatis面试题
    Java IO流总结
    Spring中文文档
    Vue.js实战之组件之间的数据传递
    Vue.js实战之Vuex的入门教程
    Vue系列——在vue项目中使用jQuery及其第三方插件
  • 原文地址:https://www.cnblogs.com/hqzxbb/p/4395359.html
Copyright © 2011-2022 走看看