Mantle迅速上手
来源:互联网 发布:哪里买鲜花便宜知乎 编辑:程序博客网 时间:2024/06/09 15:51
首先,不要害怕,他是帮助我们简化问题的(比如自动降NSNull转成nil,减少崩溃的可能),所以并不会难用。
我们通常用的就是MTLJSONAdapter,MTLModel
tip 1:继承MTLModel,遵守MTLJSONSerializing协议
你需要实现这个方法来写明一下映射关系,这个是我觉得Mantle不好的一点,如果属性和传过来的接口是一样的名字,也必须要在这个方法里一一对应,不太好,MJExtension就不需要。
+ (NSDictionary *)JSONKeyPathsByPropertyKey
用的时候
data转字典
[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
字典转模型
Model *model = [MTLJSONAdapter modelOfClass:[Model class] fromJSONDictionary:dict error:nil];
如果你的模型里面想要的是NSDate, 但是传过来的是NSNumber的话,你可以实现这个方法来转换一下。
+ (NSValueTransformer *)dateJSONTransformer { // 这里要注意哦,你要在方法名前面加上你要修改的属性名哦 return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSNumber *dateNum) { return [NSDate dateWithTimeIntervalSince1970:dateNum.floatValue]; } reverseBlock:^(NSDate *date) { return [NSString stringWithFormat:@"%f",[date timeIntervalSince1970]]; }];}
这里面reverseBlock是用来模型转json的
也就是这个方法
+ (NSDictionary *)JSONDictionaryFromModel:
当你的模型里有的属性是数组的话,你就需要告诉他一下,这个数组里面放的是什么模型,也就是实现这个方法
+ (NSValueTransformer *)recommendListJSONTransformer { // 这里的命名方式同上 return [MTLJSONAdapter arrayTransformerWithModelClass:[XXXModel class]];}
如果你的模型里的一个属性是另一个Model的话,那么你就需要实现这个方法
+ (NSValueTransformer *)companyInfoJSONTransformer { // 这里的命名方式同上 return [MTLJSONAdapter dictionaryTransformerWithModelClass:[XXXModel class]];}
当你想把模型存储起来的时候你可以酱紫操作。
归档操作
[NSKeyedArchiver archiveRootObject:model toFile:path];
解档操作
TestDataModel *unachiveModel = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
参考文章:http://blog.csdn.net/majiakun1/article/details/45829561
0 0
- Mantle迅速上手
- Mantle 快速使用上手
- 迅速上手LaTeX
- yum安装mysql,迅速上手
- Mantle
- Mantle
- Mantle
- Mantle
- Mantle
- Mantle
- SEO优化新手迅速上手技巧
- 关于迅速上手Pychart的简单介绍
- SEO无非是外链和内链 新手迅速上手技巧
- SEO无非是外链和内链 新手迅速上手技巧
- 手势操作的Snake游戏_拿来主义迅速上手
- 迅速上手,能随便跑起来的OpenTLD
- mantle学习
- Mantle Introduce
- 飛飛(五十三)各种物体体积和表面积(完整版)
- Android4.4-Launcher源码分析系列之关键的类和接口之DragLayer
- ubuntu python django环境部署
- iOS开发_统计xcode代码行数
- 一个程序在电脑中的运行情况
- Mantle迅速上手
- 动物可以这样叫(纯虚函数)
- &类型参数的坑
- php升级5.6
- css和javascript中图片路径的不同
- Linux命令之chmod(修改文件权限)
- 123
- CAFFE- faster rcnn修改demo.py保存网络中间结果
- 计算机图形学(二)输出图元_17_图形分割