MJExtension的使用:https://github.com/CoderMJLee/MJExtension
MJExtension能做什么?
- MJExtension是一套字典和模型之间互相转换的超轻量级框架
MJExtension能完成的功能
字典(JSON) --> 模型(Model)
模型(Model) --> 字典(JSON)
字典数组(JSON Array) --> 模型数组(Model Array)
模型数组(Model Array) --> 字典数组(JSON Array)
MJExtension和JSONModel、Mantle等框架的区别
1. 转换速率:
最近一次测试表明:MJExtension > JSONModel > Mantle
各位开发者也可以自行测试
2.具体用法:
JSONModel:
要求所有模型类必须继承自JSONModel基类
Mantle:
要求所有模型类必须继承自MTModel基类
MJExtension:
不需要你的模型类继承任何特殊基类,毫无污染,毫无侵入性
如何使用MJExtension
方法一:cocoapods导入:pod 'MJExtension'
方法二:手动导入:
将MJExtensionExample/MJExtensionExample/MJExtension文件夹中的所有源代码拽入项目中
导入主头文件:#import "MJExtension.h"
MJExtension.h
MJConst.h
MJConst.m
MJFoundation.h
MJFoundation.m
MJIvar.h
MJIvar.m
MJType.h
MJType.m
NSObject+MJCoding.h
NSObject+MJCoding.m
NSObject+MJIvar.h
NSObject+MJIvar.m
NSObject+MJKeyValue.h
NSObject+MJKeyValue.m
最简单的字典转模型: objectWithKeyValues:
模型中嵌套模型
.模型中有个数组属性,数组里面又要装着其它模型:在模型内部实现+ (NSDictionary *)objectClassInArray方法
模型中的属性名和字典中的key不相同(或者需要多级映射)
将一个字典数组转成模型数组:objectArrayWithKeyValuesArray:
将一个模型转成字典:
// 新建模型
User *user = [[User alloc] init];
user.name = @"Jack";
user.icon = @"lufy.png";
Status *status = [[Status alloc] init];
status.user = user;
status.text = @"今天的心情不错!";
// 将模型转为字典
NSDictionary *statusDict = status.keyValues;
将一个模型数组转成字典数组:
// 新建模型数组
User *user1 = [[User alloc] init];
user1.name = @"Jack";
user1.icon = @"lufy.png";
User *user2 = [[User alloc] init];
user2.name = @"Rose";
user2.icon = @"nami.png";
NSArray *userArray = @[user1, user2];
// 将模型数组转为字典数组
NSArray *dictArray = [User keyValuesArrayWithObjectArray:userArray];
NSLog(@"%@", dictArray);
/*(
{ icon = "lufy.png"; name = Jack; },
{ icon = "nami.png"; name = Rose; } )*/
核心代码7:
[User keyValuesArrayWithObjectArray:userArray]
MJExtension的使用:https://github.com/CoderMJLee/MJExtension的更多相关文章
- 转载请注明出处: https://github.com/qiu-deqing/FE-interview
转载请注明出处: https://github.com/qiu-deqing/FE-interview Table of Contents generated with DocToc FE-inter ...
- https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/
https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/ ...
- fatal: could not read Username for 'https://github.com': No such file or directo
Git push origin master报错 fatal: could not read Username for 'https://github.com': No such file or di ...
- 结合个人经历总结的前端入门方法 (转自https://github.com/qiu-deqing/FE-learning)
结合个人经历总结的前端入门方法 (https://github.com/qiu-deqing/FE-learning),里面有很详细的介绍. 之前一直想学习前端的,都不知道怎么下手都一年了啥也没学到, ...
- (2016 年) githup 博客地址 : https://github.com/JMWY/MyBlog
githup 博客地址 : https://github.com/JMWY/MyBlog
- MBProgressHUD框架的使用:https://github.com/jdg/MBProgressHUD
MBProgressHUD是一个开源类库,实现了各种样式的提示框, 下载地址:https://github.com/jdg/MBProgressHUD,然后把两个MBProgressHUD.h和MBP ...
- https://github.com/akullpp/awesome-java
java stack https://github.com/akullpp/awesome-java
- https://github.com/oneuijs/You-Dont-Need-jQuery
https://github.com/oneuijs/You-Dont-Need-jQuery
- wget https://github.com/xxx/yyy/archive/${commit_hash}.zip
wget https://github.com/xxx/yyy/archive/${commit_hash}.zip
随机推荐
- Git+GitHub 使用小结
1.Git安装完成后需要做的配置 $ git config --global user.name "Your Name" $ git confi ...
- keepalived+LVS搭建高可用负载均衡系统
相关架构设置: 1)vip : 192.168.137.6 2)DS master ip : 192.168.137.8 3)DS backup ip : 192.168.137.9 4)RS 1 i ...
- 关于Redis info的参数总结
Redis官网对 info 已经讲解的比较清楚的,参考文档 .可以看到,info的输出结果是分几块的,有Servers.Clients.Memory等等,通过info后面接这些参数,可以指定输出某一块 ...
- cxf开发Restful Web Services
一.restful web services rest全称是Representation State Transfer(表述性状态转移).它是一种软件架构风格,只是提供了一组设计原则和约束条件.在re ...
- shell的查找与替换
shell中做查找,grep是注定逃不开的. cat file | grep austin 就是在文档中查找Austin所在行. grep和正则表达式匹配之后,查找功能变得异常强大. 这个时候,要保证 ...
- js 操作select和option
js 操作select和option 1.动态创建select function createSelect(){ var mySelect = document.createElement_x(&qu ...
- sqoop sample code
本文使用的数据库是mysql的sample database employees. download url:https://launchpad.net/test-db/employees-db-1/ ...
- JVM 垃圾回收算法
在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”. 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当 ...
- hdu-1789-Doing Homework again
/* Doing Homework again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- 《TCP/IP 详解 卷一》读书笔记-----IP静态 路由
1.主机中的路由表只能被守护进程routing daemon或者“redirect”类型的ICMP报文所更新. 2.在根据路由表进行路由选择时,判断的优先级从高到低依次为1)表中存在与目的IP完全匹配 ...