博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于NSNumber & NSValue的方法知识简单了解
阅读量:4697 次
发布时间:2019-06-09

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

简单分享下,希望大牛们多多指点迷津,逐步修改,完善不足支持。借鉴之处,还请谅解

 

#import <Foundation/Foundation.h>

 

typedef struct{             //C-结构体

    int year;

    int month;

    int day;

}Date;

 

void text(){

    Date mydate;                //定义一个结构体变量

    Date date={2016,8,20};

    

    char *type=@encode(Date);   //根据结构体类型生成 对应的 类型描述字符串

            //void* 代表任何指针。这里要传结构体的地址&date

    NSValue *val=[NSValue value:&date withObjCType:type];

//    [val objCType];     //取出类型描述字符串

    

    [val getValue:&mydate];        //取出包装好的结构体

    NSLog(@"%i-%i-%i",mydate.year,mydate.month,mydate.day);   //.表示访问成员

}

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        

#pragma mark NSNumber常用方法

        //只能包装数字,不能包装结构体,不支持包装的自动解包

        NSNumber *num=[NSNumber numberWithInt:10];

               //将int类型10 包装给一个NSNumber对象

        NSMutableArray *array=[NSMutableArray array];

        [array addObject:num];    //添加数值到数组中

        NSNumber *num1=[array lastObject];

               //取出的还是一个NSNumber对象,不支持自动解包

        int number=[num1 intValue];   //将NSNumber转化成int类型

        num=@12;        //快速包装数字对象

        

#pragma mark NSValue常用方法

        //包装类,NSValue是NSNumber的父类,可以包装任意值

        CGPoint point=CGPointMake(10, 10);

        NSValue *value=[NSValue valueWithPoint:point];

        //将结构体包装成一个对象

        [array addObject:value];    //添加value

        NSValue *v1=[array lastObject];

        CGPoint p1=[v1 pointValue];  //取出放入的value

        BOOL re=CGPointEqualToPoint(point, p1);   //判断比较

        NSValue *v2=@'a';       //快速包装字符,打印出anscii码:97

         text();

    }

    return 0;

}

 

转载于:https://www.cnblogs.com/Miracle-Huang/p/5516162.html

你可能感兴趣的文章
Summary of CRM 2011 plug-in
查看>>
Eclipse+Maven环境下java.lang.OutOfMemoryError: PermGen space及其解决方法
查看>>
安全漏洞之Java
查看>>
Oracle 组函数count()
查看>>
Session的使用过程中应注意的一个小问题
查看>>
SDK,API,DLL名词解释
查看>>
试探算法
查看>>
jquery.validation.js 使用
查看>>
数据库高级查询
查看>>
C语言实现封装、继承和多态
查看>>
创建文件
查看>>
Nginx 相关介绍
查看>>
leetcode[33]Search in Rotated Sorted Array
查看>>
安卓上按钮绑定监听事件的两种写法
查看>>
OpenCV Shi-Tomasi角点检测子
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
结对编程进展总结
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>