MJExtension的用法
2016-07-05 15:57
218 查看
今天继续写下MJExtension的用法,前面的博客自动生成module中只是简单的提到了生成module的步骤,今天针对MJExtension做一个全面的介绍。
其实网络上对MJExtension类库的介绍已经十分详细了。MJ哥的IOS功底还是很深厚的,相信大家也一直在用MJ哥的封装库。
今天我简单介绍下使用MJExtension的一些方法,最后会附上MJ哥自己写的文档,当然我这里主要是给自己看一下自己做的MJExtension,做一个温故知识的作用,因为他这个库自己已经介绍的很清楚了。好了下面开始讲解下。
1.我们获取的数据目前看来还都是Json,那么我们得到的数据也就是nsdicitonary或者nsarray。
2.如果我们得到的数据是一个nsdicitonary,那么我们可以使用MJExtension中的mj_objectWithKeyValues:去给已经建好的module赋值。
3.如果我们得到的数据是一个nsarray,那么我们可以使用MJExtension中的mj_objectArrayWithKeyValuesArray:去给已经建好的module赋值。
4.赋值过后我们需要取值,同样如果是取nsdicitonary可以使用module.mj_keyValues,直接得到结果。
5.如果是取nsarray可以使用mj_keyValuesArrayWithObjectArray,直接得到结果。
6.当然,并不是所有的module跟后台是一致的,因为有些关键字是我们ios不能用的,例如NSInteger,id等。那么如何解决这些不能用的属性呢?MJExtension同样给我们提供了转换方法。
7.例如我们需要将id转换成我们可以使用的ID,就可以使用mj_replacedKeyFromPropertyName这个方法,具体使用方法如下:
8.不过既然我们本地建立的属性是ID,那么解析和赋值的时候也就不能用id而只能用ID了。
最后补上MJ自己的讲解:http://www.jianshu.com/p/93c242452b9b
其实网络上对MJExtension类库的介绍已经十分详细了。MJ哥的IOS功底还是很深厚的,相信大家也一直在用MJ哥的封装库。
今天我简单介绍下使用MJExtension的一些方法,最后会附上MJ哥自己写的文档,当然我这里主要是给自己看一下自己做的MJExtension,做一个温故知识的作用,因为他这个库自己已经介绍的很清楚了。好了下面开始讲解下。
1.我们获取的数据目前看来还都是Json,那么我们得到的数据也就是nsdicitonary或者nsarray。
2.如果我们得到的数据是一个nsdicitonary,那么我们可以使用MJExtension中的mj_objectWithKeyValues:去给已经建好的module赋值。
3.如果我们得到的数据是一个nsarray,那么我们可以使用MJExtension中的mj_objectArrayWithKeyValuesArray:去给已经建好的module赋值。
4.赋值过后我们需要取值,同样如果是取nsdicitonary可以使用module.mj_keyValues,直接得到结果。
5.如果是取nsarray可以使用mj_keyValuesArrayWithObjectArray,直接得到结果。
6.当然,并不是所有的module跟后台是一致的,因为有些关键字是我们ios不能用的,例如NSInteger,id等。那么如何解决这些不能用的属性呢?MJExtension同样给我们提供了转换方法。
7.例如我们需要将id转换成我们可以使用的ID,就可以使用mj_replacedKeyFromPropertyName这个方法,具体使用方法如下:
+(NSDictionary *)mj_replacedKeyFromPropertyName { return @{@"ID":@"id"}; }
8.不过既然我们本地建立的属性是ID,那么解析和赋值的时候也就不能用id而只能用ID了。
最后补上MJ自己的讲解:http://www.jianshu.com/p/93c242452b9b
相关文章推荐
- 自动生成module
- runtime获取属性列表,修改属性值,添加并修改私有方法的调用
- [iOS] 过滤后台返回nil的数据
- JSONModel、Mantle、MJExtension、YYModel 等工具的对比
- MJExtension 字典转模型高级使用技巧
- 关于从服务器获取的JSON数据为OC关键字的解决方法(id, description)
- 字典里有个数组,数组里面存放着几个不相同的字典模型怎么用MJExtension解析,
- Android Viewflipper详解。。
- HTML5 progress元素的样式控制、兼容与实例
- 局域网共享服务器可以ping通但访问不了
- Mac 下的MySQL ERROR 1227(42000): Access denied; you need (at least one of)
- Lua实现计算 UTF8 字符串的长度,每一个中文算一个字符
- 【分享】WeX5的正确打开方式(6)——数据组件初探
- Yii2 主从 数据库
- hadoop完全分布式-1
- DIV+CSS解决IE6,IE7,IE8,FF兼容问题
- HTTP中GET和POST的区别
- bower
- windows linux 之间文件共享 samba配置
- 云时代,你离专业企业移动工作平台之间,还差什么—Cnskype