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);
}

 

 

posted on 2015-04-06 07:27  hqzxB了个B  阅读(151)  评论(0编辑  收藏  举报