kvc


+ (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];

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值