本文分为两部分:
一:教你怎样一部获取成员属性(通过NSObject+autoLogProperty分类)
二:对比KVC和runtime两种字典转模型的方法并抽取一个分类
一:自定义分类,打印字典转模型的属性声明
|
|
1.核心思想:
1.遍历自定义类中的成员变量
2.将遍历获取的成员变量定为value,复制给类中的ivar.
2.runtime字典转模型与KVC赋值的区别:
KVC是调用`setValue: forKey: `的方法,将系统的成员变量作为value,自定义的属性为key
如果自定义的属性找不到就必须要调用 `- (void)setValue:(id)value forUndefinedKey:(NSString *)key;`
来处理报错。
但是runtime的字典转模型是将自定义属性生成的下划线成员变量变为key.
`setValuesForKeysWithDictionary:`就不会出现找不到key而报错的问题了。
两种字典转模型的代码:
1.KVC方式字典转模型
|
|
2.runtime字典转模型
|
|
3.具体使用
|
|
注意:demo中的工具类可以抽取使用