検証環境:
Xcode 12.4
Swift 5.3.2
Swift の Struct にはデフォルトで暗黙的なイニシャライザ init メソッドが定義されているので自分で実装する必要ないのだが、public struct
で定義して別モジュールから import して使う場合は使用できない。
以下の Initializers を参照。
Access Control — The Swift Programming Language (Swift 5.4)
なので初期化用の init メソッドを自分で実装しなければならないのだが、メンバ変数がたくさんあると面倒である。
調べたところ Xcode に自動生成する機能をあったのでそれを使えば楽に生成できた。
やり方
以下のような Struct を定義したとする。
Struct 名を右クリックし、Refactor
-> Generate Memberwise Initializer
を選択。
イニシャライザのコードが自動生成された。