我发现自己花了很多时间编写样板构造函数代码,如下所示。有没有办法让XCode生成这个/某种方式来使这个过程更快?
public class T {
let t1: T1
let t2: T2
let t3: T3
public init(t1: T1, t2: T2, t3: T3) {
self.t1 = t1
self.t2 = t2
self.t3 = t3
}
答案 0 :(得分:1)
Sourcery是实现这一目标的绝佳工具。
以下是您可以使用的模板:
{% for type in types.structs %}
{% if type|annotated:"AutoInit" %}
{% set spacing %}{% if type.parentName %} {% endif %}{% endset %}
{% map type.storedVariables into parameters using var %}{{ var.name }}: {{ var.typeName }}{% endmap %}
// sourcery:inline:auto:{{ type.name }}.AutoInit
{{spacing}} {{ type.accessLevel }} init({{ parameters|join }}) { // swiftlint:disable:this line_length
{{spacing}} {% for variable in type.storedVariables %}
{{spacing}} self.{{ variable.name }} = {{ variable.name }}
{{spacing}} {% endfor %}
{{spacing}} }
// sourcery:end
{% endif %}
{% endfor %}
我从这篇AutoInit文章中获得了模板