博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSValue&NSNumber
阅读量:6847 次
发布时间:2019-06-26

本文共 1765 字,大约阅读时间需要 5 分钟。

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];

}

转载于:https://www.cnblogs.com/hyuganatsu/p/NSValue_NSNumber.html

你可能感兴趣的文章
IDEA2016.3搭建Struts2+Hibernate+Spring项目环境
查看>>
多线程(一)线程创建的三种方式
查看>>
HDU-4310 Hero 贪心Or动态规划
查看>>
linux软件管理 YUM命令
查看>>
windows下memcache安装及配置
查看>>
第一次作业人工智能
查看>>
labeled LDA,Hierarchically Supervised LDA
查看>>
JavaScript 捕获按键
查看>>
记录Javascript数组的方法参考
查看>>
截图软件
查看>>
关于抽奖概率的问题
查看>>
《鸟哥的私房菜阅读摘要》——linux的简介和计算机基础
查看>>
hql语句的case when then else end问题
查看>>
CF786E ALT
查看>>
引用与指针的区别
查看>>
MongoCola Web化 -- 1. 是不是什么软件都要Web化的讨论 2.新公司,新起点 3.MongoCola 新版本发布...
查看>>
LeetCode (6): ZigZag Conversion
查看>>
HDU 4424 Conquer a New Region 并查集
查看>>
捣乱Linux环境下的C语言
查看>>
13040:All in All
查看>>