Mantle迅速上手

原创 2016年05月31日 19:37:17

首先,不要害怕,他是帮助我们简化问题的(比如自动降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

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于迅速上手Pychart的简单介绍

博主在项目中使用python画图时,初碰Pychart,网上关于Pychart的使用说明较少,因此,碰到了几个新手容易出现的问题,现在把经验分享一下,好让这样的Pychart的菜鸟少走些弯路。 步骤一...

迅速上手LaTeX

对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看。   本教程面向对LaTeX完全无认知无基础的新人。  旨在让新人能够用最简单快捷的方式,轻松入门,能够迅速使用LaTeX完成基...
  • hephec
  • hephec
  • 2014年06月10日 00:34
  • 408

iOS ——Mantle

  • 2016年10月26日 15:21
  • 54KB
  • 下载

OpenGL下代更多细节公布:新名称火山对抗DirectX 12和Mantle

AMD提出的Mantle不论最终结局如何,它在一定程度上都推动了DirectX和OpenGL规范的发展,去年的GDC大会上微软发布了DirectX 12(以下简称DX12),OpenGL官方组织Khr...

ios Mantle使用小记

http://blog.csdn.net/smking/article/details/47804855 先从Mantle github上下载下最新代码, (最近发现这个Mantle升级...
  • jeffasd
  • jeffasd
  • 2015年12月19日 22:09
  • 284

为什么唱吧iOS 6.0选择了Mantle

原文:http://www.iwangke.me/2014/10/13/Why-Changba-iOS-choose-Mantle/ 最近唱吧iOS的6.0版本已经成功上线了。18人月的投入,2...

IOS最近使用的解析第三方mantle

添加mantle 到你的项目1. pod search mantle 2. git上去下 会用cocoapod应该都会的, 我就不详细说了, 如果不会的可以百度, 或者留言, 教你也可以 好进入正...

Mantle简介

Mantle是iOS和Mac平台下基于Objective-C编写的一个简单高效的模型层框架。 Mantle能做什么 Mantle可以轻松把JSON数据、字典(Dictionary)和模型(即O...

FrameWork Learning - Mantle

Mantle是一个用于简化Cocoa或Cocoa Touch程序中model层的第三方库。通常我们的应该中都会定义大量的model来表示各种数据结构,而这些model的初始化和编码解码都需要写大量的代...

Mantle源码浅析

转载自:http://www.cocoachina.com/ios/20150127/11034.html Mantle是一个用于简化Cocoa或Cocoa Touch程序中model层的第三方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mantle迅速上手
举报原因:
原因补充:

(最多只允许输入30个字)