#import <Foundation/Foundation.h>

 

void value() {

   CGPoint point = CGPointMake(10,10);

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

   NSValue *value = [NSValuevalueWithPoint:point];

    

    NSMutableArray *array = [NSMutableArrayarray];

    // 添加value

    [arrayaddObject:value];

    

    // 取出当时放进去的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 = {2013,4, 7};

    // void *代表任何指针

    // 这里要传结构体的地址&date

    

    //根据结构体类型生成 对应的类型描述字符串

   char *type = @encode(Date);

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

    

    

    //定义一个结构体变量

   Date date1;

    

    //取出包装好的结构体

    [valuegetValue:&date1];

    

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

    

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

}

 

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

{

 

    @autoreleasepool {

       value2();

    }

   return 0;

}

 

 posted on 2015-04-14 21:05  ianhao_cn  阅读(171)  评论(0编辑  收藏  举报