关闭

OC之【NSValue的使用】

标签: objective-cios
770人阅读 评论(0) 收藏 举报
分类:

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

}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:631722次
    • 积分:9410
    • 等级:
    • 排名:第1998名
    • 原创:272篇
    • 转载:235篇
    • 译文:14篇
    • 评论:31条
    博客专栏
    最新评论