zoukankan      html  css  js  c++  java
  • Foundation ----->NSNumber

    /*--------------------NSNumber--------------------*/
        //包装基本数据类型
        
        //1.创建number对象
        //12,1.9,'A',YES
        //整型
    
        //(1)包装
        NSNumber *intNum = [NSNumber numberWithInteger:12];
        NSNumber *floatNum = [NSNumber numberWithDouble:1.9];
        NSNumber *charNum = [NSNumber numberWithChar:'A'];
        NSNumber *boolNum = [NSNumber numberWithBool:YES];
        
        NSArray *array = @[intNum,floatNum,charNum,boolNum];
        NSLog(@"%@",array);
        
        //(2)解包
        NSInteger intValue = [intNum integerValue];
        CGFloat floatValue = [floatNum doubleValue];
        char c = [charNum charValue];
        bool b = [boolNum boolValue];
        
        //优化语法
        NSNumber *intNum2 = @12;
        NSNumber *floatNum2 = @1.9;
        NSNumber *charNum2 = @'A';
        NSNumber *boolNum2 = @YES;
        
        NSInteger count = 12;
        NSNumber *num = @(count);
        
        /*--------------------NSValue--------------------*/
        //将结构体变成对象
        NSRange range = {1,2};
        
        NSValue *rgValue = [NSValue valueWithRange:range];
        NSLog(@"range:%@",rgValue);
        
    //    [NSValue valueWithSize:/]
        
        //自定义的结构体
        struct CXPoint {
            CGFloat x;
            CGFloat y;
        };
        
        //----对自定义的结构体封装----
        struct CXPoint p = {1.2,9.8};
        NSValue *pValue = [NSValue value:&p withObjCType:@encode(struct CXPoint)];
        NSLog(@"%@",pValue);
        
        //----对自定义的结构体解封装----
        struct CXPoint p2;
        [pValue getValue:&p2];
        NSLog(@"%f   %f",p2.x,p2.y);
        
        
        /*---------------------NSNull---------------------*/
        
        //nil不能作为元素存放
    //    NSArray *array2 = @[@1,@2,@3,nil,@5];
        
        NSNull *null = [NSNull null];
        NSArray *array2 = @[@1,@2,@3,null,@5];
        NSLog(@"array2:%@",array2);
        
  • 相关阅读:
    安卓开发中Theme.AppCompat.Light的解决方法
    一个监听事件监听多个按钮
    onCreate中的savedInstanceState有何具体作用
    [转]Bundle对象的使用
    【转】Android详细的对话框AlertDialog.Builder使用方法
    实现按两次返回键退出应用(利用安卓按后退键引发的函数)
    [转]解决eclipse连接不到genymotion的问题
    随笔记录九 进程和计划任务任务管理
    linux引导过程和服务控制
    上机作业三 账号管理
  • 原文地址:https://www.cnblogs.com/wangyibo-666/p/5122487.html
Copyright © 2011-2022 走看看