zoukankan      html  css  js  c++  java
  • NSValue&NSNumber

    void testForNSValue(void)

    {

        int i=10;

        

    //    NSLog(@"encode(int)=%s",@encode(int));

    //    NSLog(@"encode(float)=%s",@encode(float));

    //    NSLog(@"encode(struct student)=%s",@encode(struct student));

        NSValue* value =[[NSValue alloc]initWithBytes:&i objCType:@encode(int) ];

        

        int ret;

        [value getValue:&ret];

        NSLog(@"ret=%i",ret);

     

     

        struct s stt={88,99};

        NSValue* value2 =[[ NSValue alloc]initWithBytes:&stt objCType:@encode(struct s)];

        

        struct s newStt;

        [value2 getValue:&newStt];

        NSLog(@"newStt.a=%i, newStt.b=%i",newStt.a,newStt.b);

        

        NSLog(@"objCType is %s", [value2 objCType]);

    //    @encode(struct s) == [value2 objCType]

     

        int *p=&i;

        NSLog(@"p=%p",p);

        NSValue* v3 = [[ NSValue alloc]initWithBytes:&p objCType:@encode(int *)];

        int *q;

        [v3 getValue:&q];

        NSLog(@"q=%p",q);

        

     

    }

     

    void testNSNumber(void)

    {

        //4字节有符号整型

        NSNumber *obj1 = [ NSNumber numberWithInt:123];

        

        NSLog(@"obj1 is %i",[obj1 intValue]);

     

        //8字节有符号整型

        NSNumber *obj2 = [ NSNumber numberWithInteger:88888888];

        NSLog(@"obj2 is %li", [obj2 integerValue]);

     

        //4字节无符号整型

        NSNumber * obj3 = [ NSNumber numberWithUnsignedInt:345];

        NSLog(@"obj3 is %u", [obj3 unsignedIntValue]);

        

        //8字节无符号整型

        NSNumber* obj4 = [ NSNumber numberWithUnsignedInteger:99999999];

        NSLog(@"obj4 is %lu", [obj4 unsignedIntegerValue]);

     

        //其它的基本数据类型的封装方法

    //    NSNumber numberWithUnsignedChar:<#(unsigned char)#>

    //    obj4 unsignedCharValue

        

    //    NSNumber numberWithShort:<#(short)#>

    //      obj4 shortValue

        

    //     NSNumber numberWithUnsignedLongLong:<#(unsigned long long)#>

    //     obj4 unsignedLongLongValue

        

        NSNumber* obj5 = [ NSNumber numberWithBool:YES];

        NSLog(@"obj5 is %i",[obj5 boolValue]);

        

        int a;

        NSNumber * obj6 = [NSNumber numberWithUnsignedLong:(unsigned long)&a];

        int * add =  (int *)[obj6 unsignedLongValue];

    }

  • 相关阅读:
    常用数据验证
    js regx验证==== 正则
    sql单列合并
    msdn的网址 sql相关
    Json城市列表
    Ubuntu安装SSH服务器故障分析及解决办法(错误1:E:软件包 openssh-server 还没有可供安装的候选者,错误2:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系)
    小样儿老师:我的嵌入式学习之路(一)
    J
    归并排序的相关用法
    I
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSValue_NSNumber.html
Copyright © 2011-2022 走看看