iOS Runtime 程序员寒哥管理的技术专题

手把手教你撸ORM

2015-12-31  本文已影响745人  ColeX

概念:

转变

服务器返回数据,用model接收,通过controller逻辑交互,呈现在界面上,水到渠成的流程。
在很早以前,大家肯定见过如下这样的代码:
+ (CCGHUser *)modelWithData:(id)data{
if (!data) return nil;
if ([data isKindOfClass:[NSDictionary class]]) {
CCGHUser *user = [CCGHUser new];
user.login = ((NSDictionary *)data)[@"login"];
user.url = ((NSDictionary *)data)[@"url"];
user.type = ((NSDictionary *)data)[@"type"];
user.name= ((NSDictionary *)data)[@"name"];
return user;
}
else if ([data isKindOfClass:[NSArray class]]) {
return xxxxxxx;
}
}

每个model里都是这样一堆屎一样的代码,低级而且麻烦,那么懒惰的程序员开始想办法了,有没有一种办法可以让model自己去接收并且解析数据,省去这些恶心的代码。

事实证明,任何时候都不缺乏有创造性的人物,很快一堆优秀的自动rom类库涌现出来,比如很热门的
MJExtension
JSONModel
FastEasyMapping
Mantle
YYModel

我写的跟大神们的肯定没法比,实现了基本功能,加入了一些简单容错,

API
使用:
CCGHUser *model = [CCGHUser cc_modelFromJson:data]; //jsonToModel

NSLog(@"%@",[model cc_modelToDictionary]);//modelToDic

思路

核心思想就是 runtime 和 KVC

总结

总共就一个类,非常轻量,(当然功能也很轻量。。)仅供大家娱乐参考。
有兴趣的戳下面

我是Demo

有任何想法或者建议可与我联系
邮箱:846366712@qq.com
微博:攻城湿夏小白

上一篇下一篇

猜你喜欢

热点阅读