从后台请求一个类似数组的JSON,例如点餐,亦或者服务包之类的,页面上只是对次数,或者选中进行操作;然后将整个包,或者点餐字段原封不动的传给后台;
有的小伙伴会用到MJExtension mj_objectArrayWithKeyValuesArray 把JSON数组转为模型数组;
问题:模型数组中,往往我们会新增一些字段,比如是否选中
@property(assign,nonatomic)BOOL packAgesSelectStaus;
@property(assign,nonatomic)NSInteger FirstStatusNums;
等新增的字段,那上面FirstStatusNums举例,这个属性在init的时候会给他一个初始值,通过下面的方法:
+(NSDictionary *)mj_replacedKeyFromPropertyName{
return @{@"itemFirstPrice":@"item_price",@"FirstStatusNums":@"item_limit_use"};
}
这样我们就实现了,在模型初始化的时候,就能够为新增的字段赋值,是不是有种还能这样做的想法?
问题就出现了,如果你用上面的方法去做,界面操作都没什么问题,但是最后将数据传给后台的时候,我们要把模型数组转为字典数组的时候,就会发现 你新增的哪些字段都没了,
而且返回的数据,和从后台请求的数据是一样的,并没有发生改变,比如后台给你的默认次数是5次,界面改为10次,但是在转的时候,返给的数据,还是5次;这就不符合需求;
正确的做法:
在请求接口里面,初始化我们新增的属性字段;
这样在模型数组转字典数组的时候,就不会出现上述的情况了;