关于字典转模型的一些思考(持续更新中)

关于字典转模型的一些思考:
一般情况下,静态的数据(相比于网络数据而言)可以保存在plist中。plist中一般以字段数组的形式,保存数据,一个字段对象可以有非常丰富的数据类型,可以很好的表达一个对象。但是字典对象依赖于”键值编码”,在获取字典对象值时,需要指明键名才行。但是键名很容易输错,而且字典对象难以有所扩充,不能把我们希望添加的操作数据的方法添加进去,所以需要对字典对象做一层封装。这个封装就是模型对象。模型对象中定义了的属性,和字典对象意义对应,因此可以方便的使用KVC来使用字典对象来对模型对象直接赋值(属性值)。其次就是可以在模型对象中添加各种方法,来辅助对模型的管理。最常见的方法是模型对象的初始化方法:
对象方法:模型对象使用字典来初始化自身(使用KVC来直接用字典对象给模型对象赋值)
类方法:当没有模型对象时,通过自身类(类也是一个对象)alloc来实例化一个模型对象,调用对象方法,从而初始化出一个赋值了的模型对象
模型类方法:直接将数据从plist中加载形成字典对象后,调用类方法,返回 模型数组,一步到位。

当plist中字典的层次关系比较简单时,以上的字典转模型方法是适用的。但是plist有时会出现字典对象里有数组,数组里还有字典对象的情况,换言之,就是字典对象的层次比较深。而普通的KVC,只能对基础类型赋值,并能将数组赋值。因此需要做特殊处理。

总体的思路是,从最外层开始,一层一层的将字典数据转化为模型。最外层的基础数据仍旧使用KVC,而类似字典数组这样的多层次字典数据,就需要内层的模型来提供方法调用解析;一般是外层将字典数组传给模型方法,由模型方法将字典数组转化为模型数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值