今日からでもすぐに取り入れられて、
- コードをよりクリーンにできる、とか
- 工数を削減できる、とか
そんなTipsを紹介していく記事シリーズです。
「知らなかった」「気づかなかった」「忘れていた」そんな誰かの役に立てば幸いです。
前提環境
- Xcode 11.3.1
- Swift 5.1.3
Initialization Closure
概要・使い所
プロパティが属する型が初期化されるたびに、クロージャーが呼び出され、その戻り値がプロパティのデフォルト値として割り当てられます。
特に、UIをコードで構築する場合に効果を発揮します。
プロパティの宣言部分に初期化のためのコードを集約できるため、見通しが良くなります。
class ViewController: UIViewController {
private let label: UILabel = {
let l = UILabel()
l.translatesAutoresizingMaskIntoConstraints = false
l.text = "label"
return l
}()
private let button: UIButton = {
let b = UIButton()
b.translatesAutoresizingMaskIntoConstraints = false
b.setTitle("button", for: .normal)
b.setTitleColor(.blue, for: .normal)
b.sizeToFit()
return b
}()
// 以下省略
}