在开发中,会有一些重复结构的代码需要重复编写,例如使用ObjectMapper中对模型对象的定义。使用元编程,是为了对有固定规则结构特点的代码进行抽象,提取有共性的地方,使用模板的方式,让代码自动生成的一种方法。下面具体介绍Sourcery元编程工具的使用方式。
三方库名称:Sourcery
三方库地址:https://github.com/krzysztofzablocki/Sourcery
安装方式:
brew install sourcery
执行方式
./sourcery --sources <sources path> --templates <templates path> --output <output path>
下面介绍一个简单的实际使用案例进行说明:
-
新建空白Xcode工程,添加AlamofireObjectMapper三方库
-
测试目标json网络接口
-
添加Xcode编译宏,执行sourcery生成目标代码配置
并在宏对应的工程目录中,创建文件夹,Model, Model/Templates, Model/AutoGenerate,和一个NotCompile文件夹
-
编写stencil脚本,并放入Templates文件夹内
写一个空实现的脚本,作为Sourcery的标记协议用,对需要进行代码自动生成的类,去遵守这个协议
-
在NotCompile中,新增AppointmentModel.swift文件,定义模型类的属性,并遵守AutoModelable协议
-
编译,在AutoGenerator文件夹中,手动添加生成的AutoModelable.generated.swift文件
-
测试,直接使用AppointmentModel类,也就是由代码自动生成的定义
工程github地址:
https://github.com/linx214/SourceryTest.git