您的位置:首页 > 其它

kvc

2016-06-24 22:34 190 查看
+ (Person *)createModelWithDic:(NSDictionary *)dic{

//   创建对象
将字典中的数据赋值给属性 返回对象

    

    Person *model = [[Person
alloc]init];

  /*普通写法

    model.name = dic[@"name"];

    model.sex = dic[@"sex"];

    model.age = dic[@"age"];

  */

//  KVC 在字典中获取到key model中查找同名的属性 value赋值给属性

    [model setValuesForKeysWithDictionary:dic];

    

// 注意:如果没有找到同名属性
或者key是系统关键字时
赋值失败 程序崩溃

// 解决方法
重写KVC中的方法 setValue forUndefinedKey

    return model;

    

}

- (void)setValue:(id)value forUndefinedKey:(NSString *)key{

//字典中的key没有找到同名属性
该方法调用

    

    

//    value字典中的 key字典中的

    

    if([key
isEqualToString:@"id"]){

    

        [self setValue:value
forKey:@"ID"];

//        self.ID = value;

    }

    

    

}

#pragma mark -- 自定义输出格式

- (NSString *)description{

    return [NSString
stringWithFormat:@"\nname:%@\n sex:%@\n age:%@\n id:%@ ",self.name,
self.sex,
self.age,
self.ID];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: