YYModel映射map自动生成插件(测试版)

之前公司的项目json转换model是自己写的,手动从字典中取值、然后再赋值。处于多方面考虑决定使用YYModel,原因就不说了。
YYModel通过一个映射关系可以自动从json转换到model

/返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。
+ (NSDictionary *)modelCustomPropertyMapper {
    return @{@"name" : @"n",
             @"page" : @"p",
             @"desc" : @"ext.desc",
             @"bookID" : @[@"id",@"ID",@"book_id"]};
}

但是我们的项目有300多个接口,model也有几十个,没有model里面都添加一个这个方法,工作量不说了,关键都是字符串,复制来复制去的,特别容易出错,所以就把VVDocumenter-Xcode插件修改了一下来做这个工作。

所以这个插件只是简单的修改了一下,有很多坑,先来介绍坑吧,合适你了再用。

  • 坑1
    因为是VVDocumenter-Xcode修改的,所以会和VVDocumenter-Xcode冲突,两个插件不能共存,你在安装我的插件之前做好先把VVDocumenter-Xcode卸载了。
  • 坑2
    代码的自动生成是有条件的。需要格式对照
//比如这样
-(void)setData:(NSDictionary *)data
{
    self.strItemId = [data valueForKey:@"id"];
    self.strItemName = [data valueForKey:@"title"];
    self.strItemDesc =[data valueForKey:@"content"];
}

首页你的原来解析的代码要在一个方法体里面(方法名字无所谓),然后解析格式是self.aaa = xxxxx@"bbb"xxx;
这样在这个方法体上面就会自动生成对照的映射@"aaa":@"bbb"
如果你的原来的解析不是这种格式的,这个插件也是用不了的,针对性比较强。

  • 坑3
    要结合XAlign自动对齐插件来使用
    自动生成的代码是不带对齐的,所以XAlign是用来对齐的。
    另外我也不知道为什么,在自动生成的时候会插入一个不知道哪里来的空格符,对齐之后才会显示出来,初步估计是编码格式的问题
//生成的原始代码是这样的
+(nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper {
    return @{@"strItemId " : @"id",
             @"strItemName " : @"title",
             @"strItemDesc " : @"content",
}

比如@"strItemId "就是最后带有一个空格,要删除掉。
另外代码生成后+前面有一个tab空格,也要删掉

  • 坑4
    估计后期不会维护,我已经将就着用完了,希望以后能有大神继续优化更新。我分享出来只是因为我方便完了,如果有人和我一样的情况,也可以将就着方便一下。

下面说下怎么使用和删除

DictInitToYYModel插件下载

加载插件:下载项目,直接运行,运行的时候不是选择模拟器,就是选择My Mac。运行完成后就安装插件成功了。关闭xcode,重新打开,会弹出一个选择框,选择‘Load Bundle’,就会开启成功。
使用:在上面说到的原来的代码方法体上面敲三个斜杠/,就会自动生成对应的代码。
删除:使用完成后前往目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins,删除掉DictInitToYYModel.xcplugin文件,重新启动xcode就可以了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容