OC 中NSNumber的基本使用

[code=objc]
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {

    // _______________NSNumber___________
    
    //可以用来包装基本数据类型
//    NSArray *array = @[1,2]; 只能存放对象
   
    /**
     *  包装基本数据类型的方法
     */
    
    //_________________装箱______________
    
    //包装整型
    NSNumber *number1 = [NSNumber numberWithInteger:1];
    NSNumber *number2 = [NSNumber numberWithInteger:2];
    
    NSArray *array = @[number1,number2];
    
 //    number1 + number2 错误
//    [NSNumber numberWithLong:<#(long)#>];
    
    //包装字符型
    NSNumber *charNum = [NSNumber numberWithChar:'a'];    
    //包装bool类型
    NSNumber *boolNum = [NSNumber numberWithBool:YES];    
    //包装double类型
    
    NSNumber *doubleNum = [NSNumber numberWithDouble:1.8];
   
    //_______________拆箱_______________________
    
    NSInteger a = [number1 integerValue];
    char b = [charNum charValue];
    BOOL c = [boolNum boolValue];
    double d = [doubleNum doubleValue];
    
    //___________________新语法____________________
    
    NSArray *arr = @[@1,@2,@3];
    
    NSNumber *num = @1;
    NSNumber *num1 = @YES;
    NSNumber *num2 = @1.9;
    
    NSInteger e = 7;
    
    //变量需要加上小括号
    NSNumber *num3 = @(e);
    
    // @1 相当于 [NSNumber numberWithInteger:1]
    
//___________________NSValue_______________________


//    NSValue 是 NSNumber的父类,可以包装结构体,指针
    
    //_____________OC提供的结构体的包装_______________
    
    
    NSRange range = {1,3}; //表示范围
    
    //将结构体包装为对象 装箱
    NSValue *value = [NSValue valueWithRange:range];
    
    //拆箱
    NSRange range1 =[value rangeValue];
    
    //NSSize,表示尺寸
    NSSize size = {100,200};
//    [NSValue valueWithSize:size];
    
//______________自定义结构体的包装__________
    
    struct Person {
        
        int age;
        float height;
    };
    
    struct Person p = {17,1.7};
    
    //装箱,将自定义的结构体包装为对象
    NSValue *personValue = [NSValue value:&p withObjCType:@encode(struct Person)];
    
    //拆箱
    struct Person p1;
    [personValue getValue:&p1];
    
    NSLog(@"%d,%f",p1.age,p1.height);
    
// ___________________NSNull(空)__________________
    
    //集合中不能存储nil
//    NSArray *array = @[@1,nil,@2];
    
    //创建了一个NSNull对象,表示空
    NSNull *n = [NSNull null];
    
    NSArray *arr1 = @[@1,n,@2];
    NSLog(@"%@",arr1);

    return 0;
}

[/code]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值