通过快速使用代码生成来快速创建模型
大家好!
今天,我们将学习如何停止编写样板代码。
创建某些模型时,我们总是会编写相同的代码。 假设我们有一个地方,那里有ID,名称和位置。 所以我们的结构看起来像这样:
然后,当您“构建”项目时,sourcery将为所有模板生成代码。
您可以在此处找到其他安装方法:https://github.com/krzysztofzablocki/Sourcery#installation
配置文件
让我们在xcode项目中创建名称为“ Templates”的新文件夹,我们的模型应该在名称为“ Models”的文件夹中。
现在我们需要在项目文件夹中创建“ .sourcery.yml”文件。 并写成这样:
您必须用项目名称(文件夹名称)替换“ ProjectName”,这是从“ .sourcery.yml”文件到我们的模型文件夹和模板的路径。
在此处阅读有关此配置文件的更多信息。
代码生成
因此,现在所有人都可以生成代码了。 我们只需要创建一个模板。 让我们创建一个简单的“ JSONAutoRepresentable”协议:
在我们最近创建的Templates文件夹中,创建文件“ JSONRepresentable.stencil”
好的,现在我们需要编写模板。 我们该怎么办?
- 我们必须遍历实现协议的所有类:
2.我们的模型可以包含一些变量,这些变量不是来自服务器的。 在这种情况下,我们可以为此变量添加注释:“ // sourcery:skip”,然后我们必须遍历所有没有跳过注释的变量:
3.在某些情况下,我们可以使用不同的变量名称和json键。 在这种情况下,我们可以使用“ // sourcery:jsonKey =” JSONKey””标记该变量。 然后:
4.如果变量是Array,那么我们需要映射到elementsTypes(并且需要将驼峰大小写转换为蛇形大小写。):
5.如果该变量也是JSONAutoRepresenteable:
6.如果变量是枚举:
7.对于所有其他变量:
完整的JSONRepresentable.stencil文件可在以下位置找到:
https://gist.github.com/Banck/0aa2d992173f972999772cda768929f5
因此,现在我们可以将JSONAutoRepresentable协议添加到我们的Place模型并构建项目。 结果如下:
这是带有跳过注释和jsonKey的模型的示例:
您可以在此处阅读有关模板的更多信息:
https://cdn.rawgit.com/krzysztofzablocki/Sourcery/master/docs/writing-templates.html
希望本文对您有所帮助。 ✌️