JSONModel 阅读笔记

一、 initWithDictionary

主要分为以下6块:

1.空值判断
2.输入类型dictionary判断
3.初始化:解析model对象,并且映射property
4.查值:检查model property名与数据来源json字典中数据名,判断是否所有property都有值
5.赋值:进行赋值
6.本地数据正确性检查

流程:

1、对象被初始化时,遍历自身到所有的父类,获取所有的属性,保存到字典里
2、获取传入字典的所有key,将key与保存的属性进行匹配,匹配成功,则进行kvc赋值

几个关键字
class_copyPropertyList //获得属性列表
property_getName //获得属性名称
property_getAttributes //获取属性类型
NSScanner

利用一个while函数,获取当前类和当前类的除JSONModel的所有父类的属性保存在一个字典中。在将来用于和传入的字典进行映射。

用JSONModelClassProperty类封装了JSONModel的每一个属性。

这个类有两个重要的属性:一个是name,它是属性的名称(例如gender)。另一个是type,它是属性的类型(例如NSString)。

将属性分为了如下几个类型:

对象(不含有协议)。
对象(含有协议,属于模型嵌套)。
基本数据类型。
结构体。

你可能感兴趣的:(JSONModel 阅读笔记)