Foundation框架——结构体

正如其名,Foundation框架是其他所有iOS框架的基础。

Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类。

要想使用Foundation中得数据类型,只要包含它的主文件即可,即#import<Foundation/Foundatoin.h>

一、NSRange

在Foundation/NSRange.h中对NSRange的定义

typedef struct _NSRange{

  NSUInteger location;

  NSUInteger length;

}

// typedef unsigned long NSUInteger;

这个结构体用来表示事物的一个范围,通常是字符串里的字符或者数组里的元素范围

location表示该范围的起始位置

length表示该范围内所含的元素个数

比如“I love Objective-c” 中得"Obj" 可以用location为7,length为3的范围来表示。

 

NSRange的三种创建方式:

1.直接给成员赋值

NSRange range;

range.location = 6;

range.length = 4;

2.应用C语言的聚合结构赋值机制

NSRange range = {6 , 4};或者 NSRange range = {.location = 6, .length = 4};

3.Foundation框架提供的一个快捷函数NSMakeRange

NSRange range = NSMakeRange(6,4);

 

二、NSPoint\CGPoint

在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)
 
Foundation框架提供了一个NSMakePoint()创建NSPoint

NSPoint point = NSMakePoint(10, 20);

或者

CGPoint point = NSMakePoint(10, 20);

在CoreGraphics框架中也提供了CGPointMake()创建一个NSPoint(CGPoint)

NSPoint point = CGPointMake(10, 20);

或者

CGPoint point = CGPointMake(10, 20);

 
三、NSSize\CGSize
在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\CGRect
在Foundation/NSGeometry.h中对NSRect的定义

typedef CGRect NSRect;

在CoreGraphics/CGGeometry.h中对CGRect的相关定义

struct CGRect {

  CGPoint origin; // 矩形左上角坐标

  CGSize size; // 矩形的宽度和高度

};

typedef struct CGRect CGRect;

这个结构体用来存储位置和宽高
可以利用NSMakeRect()和CGRectMake()创建CGRect
 
 
 
 
posted @ 2013-12-01 20:30  MrRainQ  阅读(224)  评论(0编辑  收藏  举报