NSNumber与NSValue的基本使用

一. NSNumber:用于把C语言的数值型包装成对象

要把C语言的数值和结构体添加到OC集合中,就必须先包装成对象。

    //把C语言的数值型包装成对象
    NSNumber *number1 = [NSNumber numberWithBool:YES];
    NSNumber *number2 = [NSNumber numberWithChar:'A'];
    NSNumber *number3 = [NSNumber numberWithInt:100];
    NSNumber *number4 = [NSNumber numberWithFloat:3.4f];
    NSNumber *number5 = @99;
    NSNumber *number6 = @('B');
    NSNumber *number7 = @11.1;
    NSLog(@"%@ %@ %@ %@ %@ %@ %@",number1,number2,number3,number4,number5,number6,number7);

    //NSNumber变量转换成C语言数值
    int num1 = number1.intValue;
    int num2 = [number2 intValue];
    float num3 = number4.floatValue;
    NSLog(@"%d  %d  %.2f",num1,num2,num3);

二. NSValue:把结构体包装成对象

    //利用NSValue包装常用的结构体
    NSValue *value1 = [NSValue valueWithRange:NSMakeRange(3, 10)];
    NSValue *value2 = [NSValue valueWithSize:NSMakeSize(100, 111)];
    NSLog(@"%@  %@",value1,value2);

    typedef struct {
      char *name;
      int age;
    }Person;
    Person per = {"xiaoming",20};
    //利用NSValue包装自定义的结构体
    NSValue *perValue = [NSValue valueWithBytes:&per objCType:@encode(Person)];

    //NSValue变量转换成结构体
    NSRange range = [value1 rangeValue];
    NSSize size = [value2 sizeValue];
    Person per1;
    [perValue getValue:&per1];
    NSLog(@"location = %lu  height = %.0f  name = %s",range.location,size.height,per1.name);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值