黑马程序员技术交流社区

标题: NSValue可以包装结构体 char *type = @encode(Date);是什么意思? [打印本页]

作者: 小白一号    时间: 2015-3-29 09:44
标题: NSValue可以包装结构体 char *type = @encode(Date);是什么意思?
typedef struct {
    int year;
    int month;
    int day;
} Date;
void value2() {
    Date date = {2013, 4, 7};
    // void *代表任何指针
    // 这里要传结构体的地址&date
   
    // 根据结构体类型生成 对应的 类型描述字符串
    char *type = @encode(Date);
    NSValue *value = [NSValue value:&date withObjCType:type];
   
   
    // 定义一个结构体变量
    Date date1;
   
    // 取出包装好的结构体
    [value getValue:&date1];
   
    // [value objCType];  取出类型描述字符串
   
    NSLog(@"year=%i, month=%i, day=%i", date1.year, date1.month, date1.day);
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2