标签:
简单分享下,希望大牛们多多指点迷津,逐步修改,完善不足支持。借鉴之处,还请谅解
#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;
}
标签:
原文地址:http://www.cnblogs.com/Miracle-Huang/p/5516162.html