【发布时间】:2018-08-25 20:29:42
【问题描述】:
当你在一个对象上实现Codable时,编译器会自动为你生成一个构造函数。但是,只有在您自己没有编写接受解码器的初始化程序时,它才会这样做。
也就是说,我们有一个具有大约 50 个 let 属性的对象,这些属性是从解码器设置的,但我们还有五个基于这些 let 属性的计算属性。
从技术上讲,如果我们可以在初始化程序中计算它们,在解码器设置其他 50 个之后,我们可以简单地将结果存储在它们自己的 let vars 中,完全不需要计算属性。
问题是,如前所述,如果您实现自己的初始化程序,编译器不会为您自动生成初始化程序,因此您不仅要初始化“计算”值,而且全部 价值观。
那么有没有一种方法可以让您将自己插入到初始化/解码过程中,而无需自己完全重写初始化程序?
【问题讨论】:
标签: initialization swift4 initializer codable