xyk blog

最近は iOS 開発の記事が多めです。

Swift - Struct のイニシャライザを Xcode で自動生成する

検証環境:
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 を定義したとする。

f:id:xyk:20210325121207p:plain

Struct 名を右クリックし、Refactor -> Generate Memberwise Initializer を選択。

f:id:xyk:20210325121217p:plain

イニシャライザのコードが自動生成された。

f:id:xyk:20210325121227p:plain