Mantle迅速上手

首先,不要害怕,他是帮助我们简化问题的(比如自动降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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值