NSDictionary大家并不陌生,为什么要把他和模型(JSONModel、YYModel)做对比呢?
我们项目上的一贯操作就是后台拿数据,一般是json,对于iOS来讲我们可以直接使用NSDictionary去接受这个实体,这样我们就不用再去自定义模型了,
但这在涉及本地修改接口返回数据(譬如选中标记)的时候,可能会比较麻烦,因为NSDictionary是不可变的,修改起来比较麻烦,此时就体现出了模型的优点
现在简单对比下两者
NSDictionary
优点:
1、可以直接使用,不用自定义模型
缺点:
1、不能将属性使用.语法访问,容易出错
只能使用key(dict[@"key"])访问,这样到处使用字符串访问,容易出错,且即便写错,不会报错
2、修改属性值或者添加新属性,麻烦且易出错
只能转变为NSMutableDictionary,然后再重新赋值,麻烦且易出错,
如果该NSDictionary包含在NSArray中,还要将该NSArray变为NSMutableArray,然后再重新赋值给NSArray
就为了修改属性值或者添加本地属性,需要转一大圈才可以
备注:
如果我确信要修改这个字典里的某个值或者我需要在该字典中添加新的属性,
我可以直接使用NSMutableDictionary,如果涉及数组我可以直接使用NSMutableArray,这样当然是可以的,
但是不推荐这么做。
使用场景:
一般我们用在数据比较简单,且不需要修改属性值或者添加新属性的情况
模型(JSONModel、YYModel)
优点:
1、可以使用.语法访问
只用在模型中一次性定义属性字段,安全不易出错,写错属性直接报错
2、修改属性值或者添加新属性,方便安全
不需要数据来回转化,直接操作即可 ,即便模型包含在NSArray中,也是直接操作即可,不用将该NSArray变为NSMutableArray,然后再重新赋值给NSArray
缺点:
1、需要自定义模型
使用场景:
一般我们用在数据比较庞大,或者需要修改属性值或者添加新属性的情况