美文网首页首页投稿(暂停使用,暂停投稿)iOS
YYModel映射map自动生成插件(测试版)

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

作者: Yasin的简书 | 来源:发表于2016-05-06 14:59 被阅读825次

    之前公司的项目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就可以了。

    相关文章

      网友评论

        本文标题:YYModel映射map自动生成插件(测试版)

        本文链接:https://www.haomeiwen.com/subject/jnkjrttx.html