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
 
 
 
 

转载于:https://www.cnblogs.com/zyqf1234/p/3452940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值