Foundation框架(1)数值对象与结构体对象
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
...
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。