OC_封装、拆包基本数据类型

来源:互联网 发布:linux python ide 编辑:程序博客网 时间:2024/05/09 19:18

NSValuve / NSNubmer
功能:将OC和C当中的基本数据类型转换成实例对象,即值类型 转换成 引用类型


C 和 OC 中常用的数据类型
int a = 5;
float b =5.0;
double c = 5.5;
char d = ‘a’;
bool flag = YES;

//可以用Number 将下面这些基本数据类型转换成对象

    NSNumber *intNum = [NSNumber numberWithInt:a];    NSNumber *floatNum = [NSNumber numberWithFloat:b];    NSNumber *doubleNum = [NSNumber numberWithDouble:c];    NSNumber *chaiNum = [NSNumber numberWithChar:d];    NSNumber *boolNum = [NSNumber numberWithBool:flag];

//拆包

    int a1 = [intNum intValue];    float b1 = [floatNum floatValue];    double c1 = [doubleNum doubleValue];    char d1 = [chaiNum charValue];    bool flag1 = [boolNum boolValue];

//其中NSValue可以将 CGPoint、CGSize、NSRange、NSEdgeInsets 等基本数据类型转换成对象
// CGPoint point = {3,4};
// CGSize size = {5,6};
// CGRect rect = {point,size};
// NSRange range = {10,3};
// NSRange range = NSMakeRange(<#NSUInteger loc#>, <#NSUInteger len#>)

CGPoint point = CGPointMake(3, 4);CGSize size = CGSizeMake(5, 6);// CGRect rect = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>)CGRect rect = CGRectMake(3, 4, 5, 6);NSRange range = NSMakeRange(10, 3);NSEdgeInsets edgeInsets = NSEdgeInsetsMake(10, 10, 10, 10);//逆时针 上左下右
0 1