基础框架(1)数值对象与结构体对象

   <李>

<强>基础框架

基础框架是所有iOS/MacOSX开发的基础框架

最初版本由NextStep公司开发,故其前缀为NS

该框架中主要包含:

,,,,基本数据类型

,,,,常用函数

,,,,结构体及相关操作函数

,,,,枚举类型

,,,,功能丰富的类

头文件:

@import  & lt;基?Foundation.h>


<李>

<强>数值类型及数值对象

整型:

,,类型:使用NSInteger了NSUInteger

,,,,宏定义:NSIntegerMax, NSIntegerMin, NSUIntegerMax


浮点类型:(实型)

,,,,类型:CGFloat

,,,,宏定义:CGFLOAT_MAX, CGFLOAT_MIN

这些数值类型并不是objective - c的对象,也就是说不能进行很多面向对象的操作


数值对象:

,,,, NSNumber将各种数值类型数据封装成objective - c对象

字面值初始化:

,,,,利用@关键字

NSNumber  * num1 =, @10;   NSNumber  * num2 =, @YES;   NSNumber  * num3 =, @ ' A ';   NSNumber  * num4 =, @3.14;   int  age =, 10;   NSNumber  * num5 =, @(年龄);

数值对象的构造方法:

+,(NSNumber  *) numberWithBool: (BOOL)值   +,(NSNumber  *) numberWithChar: (char)值   +,(NSNumber  *) numberWithDouble:(双)值   +,(NSNumber  *) numberWithFloat:(浮动)值   +,(NSNumber  *) numberWithInteger: (NSInteger)值   +,(NSNumber  *) numberWithLong:(长)的价值   …


<李>

<强>几何数据结构体

此部分介绍的结构体,不是类,用描述一些几何数据


NSRange表示范围:

typedef  struct  _NSRange  {   ,,,NSUInteger 位置;,,,,,//表示起始范围   ,,,NSUInteger 长度;,,,,,,,//表示范围长度   },NSRange; NSRange  r1 =,{, 2、4},,,,,,,,,//不推荐   NSRange  r2 =, {, .location=2, . length=4,},,//不推荐   NSRange  r3 =, NSMakeRange(2, 4),,,,,,//推荐使用这种方式


CGSize表示二维尺寸:

struct  CGSize  {   ,,,CGFloat 宽度;,,,,,//表示宽度   ,,,CGFloat 高度;,,,,//表示高度   };   typedef  struct  CGSize  CGSize; CGSize  s1 =, CGSizeMake(40岁,60岁);   NSLog (@ % @,, NSStringFromCGSize (s1));


CGPoint表示位置

struct  CGPoint  {   ,,,CGFloat  x,,,,,, CGFloat  y;   };   typedef  struct  CGPoint  CGPoint; CGPoint  p1 =, CGPointMake (10,, 10);   NSLog (@ % @,, NSStringFromCGPoint (p1));


CGRect中表示矩形的尺寸及位置

struct  CGRect  {   ,,,CGPoint 来源;   ,,,CGSize 规模;   };   typedef  struct  CGRect  CGRect中; CGRect  r1 =, CGRectMake(0, 0, 100年,50);   NSLog (@ % @,, NSStringFromCGRect (r1));


其他常用函数

//比较两个点是否相同   bool  CGPointEqualToPoint (CGPoint  point1, CGPoint 卷帘窗);//比较两个尺寸是否相同   bool  CGSizeEqualToSize (CGSize  size1, CGSize  size2);//比价两个矩形是否相同   bool  CGRectEqualToRect (CGRect 通过rect1, CGRect  rect2);//判断矩形中是否包含某个点   bool  CGRectContainsPoint (CGRect 矩形,CGPoint 点),

,,,

这些几何数据类型,都有表示0的常量

,,,, CGPointZero, CGSizeZero CGRectZero



<李>

<强>几何数据类型封装成对象

数值类型可以封装到NSNumber对象中

这些常用的结构体可以封装到NSValue对象中,NSValue是NSNumber的父类

+,(NSValue  *) valueWithRange: (NSRange)范围内   +,(NSValue  *) valueWithCGPoint: (CGPoint)点   +,(NSValue  *) valueWithCGSize: (CGSize)的大小   +,(NSValue  *) valueWithCGRect:矩形(CGRect中)   @ property(只读),NSRange  rangeValue   安康;CGPointValue (CGPoint)   安康;CGSizeValue (CGSize)   null

基础框架(1)数值对象与结构体对象