NSValue

针对结构体

NSNumber->数字

NSNumber是NSValue的一个子类

NSValue可以包装任意值(也可以包装对象,吃太多 )

void value(){

CGPoint point=CGPointMake(10,10);

NSValue *value=[NSValue valueWithPoint:point];

NSMutableArray array=[NSMutableArray array];

[array addObject:value];

NSValue *value1=[array lastObject];

CGPoint point1=[value1 pointValue];

BOOL result=CGPointEqualToPoint(point1,point);

NSLog(@”result=%i”,result);

}

typedef struct{

int year;

int month;

int day;

}Date;

void value2(){

Date date={2015,6,4};

//void * 代表任何指针

//根绝结构体类型生成对应的字符串

char *type=@encode(date);

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

//取出包装好的结构体

//定义一个结构体变量用于接收

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

Date date1;

[value getValue:&date];//没有返回值,指针搞了

NSLog(@“year=%i,month=%i,day=%i”,date1.year,date1.month,date1.day);

}

image

原文地址:https://www.cnblogs.com/yesihoang/p/4553160.html