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];
}
// 创建对象
将字典中的数据赋值给属性 返回对象
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];
}
相关文章推荐
- ios获取沙盒路径
- 进制之间的转换和原码、反码、补码(computer Organisation)
- 16周 范型程序补充之vector用法
- 把WinXP装进内存 性能飚升秒杀固态硬盘
- JavaScript事件
- 失传的C结构体打包技艺 -- 内存对齐
- 锁屏背景替换-概述
- 我在LeetCode的100题
- Java中collection的总结
- jQuery实现百度导航li拖放排列效果,即时更新数据库
- 阅读程序
- 字符集编码
- 高可用集群之heartbeat v2--基于CRM进行资源管理
- malloc 与 free 图
- 微信服务器发送三次重复的排重问题
- fragment学两个demo就会用(一)
- 遥感(remote sensing)中的植被指数(Vegetation Index)——学习—
- linux笔记七---------管道
- G0305-关于java开发的配置
- Zookeeper设置开启启动