Foundation框架

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

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

该框架中主要包含:

基本数据类型

常用函数

结构体及相关操作函数

枚举类型

功能丰富的类

头文件:

@import<Foundation/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;intage=10;NSNumber*num5=@(age);

数值对象的构造方法:

+(NSNumber*)numberWithBool:(BOOL)value+(NSNumber*)numberWithChar:(char)value+(NSNumber*)numberWithDouble:(double)value+(NSNumber*)numberWithFloat:(float)value+(NSNumber*)numberWithInteger:(NSInteger)value+(NSNumber*)numberWithLong:(long)value...


几何数据结构体

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


NSRange表示范围:

typedefstruct_NSRange{NSUIntegerlocation;//表示起始范围NSUIntegerlength;//表示范围长度}NSRange;

NSRanger1={2,4};//不推荐NSRanger2={.location=2,.length=4};//不推荐NSRanger3=NSMakeRange(2,4);//推荐使用这种方式


CGSize表示二维尺寸:

structCGSize{CGFloatwidth;//表示宽度CGFloatheight;//表示高度};typedefstructCGSizeCGSize;

CGSizes1=CGSizeMake(40,60);NSLog(@"%@",NSStringFromCGSize(s1));


CGPoint表示位置

structCGPoint{CGFloatx;CGFloaty;};typedefstructCGPointCGPoint;

CGPointp1=CGPointMake(10,10);NSLog(@"%@",NSStringFromCGPoint(p1));


CGRect表示矩形的尺寸及位置

structCGRect{CGPointorigin;CGSizesize;};typedefstructCGRectCGRect;

CGRectr1=CGRectMake(0,0,100,50);NSLog(@"%@",NSStringFromCGRect(r1));


其他常用函数

//比较两个点是否相同boolCGPointEqualToPoint(CGPointpoint1,CGPointpoint2);//比较两个尺寸是否相同boolCGSizeEqualToSize(CGSizesize1,CGSizesize2);//比价两个Rect是否相同boolCGRectEqualToRect(CGRectrect1,CGRectrect2);//判断Rect中是否包含某个点boolCGRectContainsPoint(CGRectrect,CGPointpoint);

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

CGPointZero CGSizeZero CGRectZero



几何数据类型封装成对象

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

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

+(NSValue*)valueWithRange:(NSRange)range+(NSValue*)valueWithCGPoint:(CGPoint)point+(NSValue*)valueWithCGSize:(CGSize)size+(NSValue*)valueWithCGRect:(CGRect)rect@property(readonly)NSRangerangeValue-(CGPoint)CGPointValue-(CGSize)CGSizeValue-(CGRect)CGRectValue

NSValue还可以封装:

形变结构体CGAffineTransform

边距结构体UIEdgeInsets

3D形变结构体CATransform3D

经纬度结构体MKCoordinate

...