最近简单的了解了下 NSDictionary 转 Model 映射的 runtime 实现。记录如下:
  | 
  | 
首先,调用了class_copyPropertyList这个方法来获取这个类的所有属性,其中propertyListCount为属性的总数。其中这个方法返回的数组用objc_property_t *来修饰,表示数组中元素为该类型(C 语言知识)。
随后在遍历数组的过程中,调用property_getName方法将objc_property_t转化成const char *字符串,进而转换成 OC 的 NSString对象存入 keys 数组。
释放已经用过的allProperties数组。
再次遍历 keys 数组,取出对应的类的属性。利用 KVC 将 bookInfo 对应的 object 存入属性中。