在学习解析的时候,我们通常这样写(直接拿项目中的接口给大家测试下)
MembersModel.h中
接口请求的数据
数据添加到数组
打印数组
看上去很有条理,按部就班,但是这种方法有确定,如果数据多了,累死人,所以我教大家一个简单的方法
简单使用setValuesForKeysWithDictionary
只需要一句话就可以替代之前的数据添加到数组
之前
使用setValuesForKeysWithDictionary方法
输出
是不是很方便了。假如有20个数据我们就不用像之前那样一个个赋值,现在只需要一句话轻松搞定
深入一些
后台在接口里面添加了新的字段没有告诉我们,会怎么样。
拿项目里的接口举例,我们把成员头像注掉
我们在请求数据
玩蛋啦,炸啦!通过了编译,但是运行就炸啦
因为在model中,没有对应的M_IMAGE属性,所以导致程序爆炸
解决方法
MembersModel.h中
MembersModel.m中
这个方法里什么都不用写 直接怼上去就行
现在我们在运行输出一下
我们的数组里面确实是没有之前的M_IMAGE了,有人可能说不对啊 你之前有6条数据现在怎么成一条了,因为是后台大哥把我建的群里面的成员删得就剩一个了,总之咱们成功啦
如果请求的数据和model中的属性名字不同,应该怎么办?
首先我们把MembersModel.h中ID改成Id,这样就和接口请求来的字段不一样了
这时候就需要在MembersModel.m中的setValue:forUndefinedKey方法中加操作了
输出
正常输出这样写个人感觉还是有点麻烦,所以在教大家一个更简单的,李明杰老师的MJExtension,确实是很方便
使用方法,把请求的数据添加到数据,一句话轻松搞定:字典数组 -> 模型数组
这种方法是不是更加简单,运行输出
正常输出。
本人新手呆鸟,忘各位老司机多多鞭策,使我快速成长。谢啦
网友评论