LoginSignup
0
2

More than 1 year has passed since last update.

[Swift]修飾子のLazyとは?

Posted at

はじめに

最近はコードでUIを作るのにハマっています。その中で、Lazyが必要な場面が出てきたので備忘録的にまとめておきます。

どんなときに使えるの?

結論、一つの用法として、コードでUIを作っていくときなどに使えることがあります。
例えば、UIButtonであれば以下のコードのように書けます。
このコードは”Lazy”を付けなくても問題なくUIButtonを生成することができます。

 let button: UIButton = {
        let button = UIButton()
        button.setTitle("tap", for: .normal)
        button.backgroundColor = .blue
        return button
    }()

では、いつ"Lazy"が必要になるのか、それはCollectionViewやTableViewでdelegate、dataSourceをselfに設定するときです。
"Lazy"をつけることで、delegateやdataSourceにselfを設定することができるようになります。
"Lazy"をつけないと怒られます。
この他にも、"Lazy"をつけることで自身のプロパティやメソッドにもアクセスすることが可能になります。

lazy var infoCollectionView: UICollectionView = {
        let layout = UICollectionViewFlowLayout()
        let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
        cv.delegate = self
        cv.dataSource = self
        cv.backgroundColor = .brown
        return cv
    }()

もう少し掘り下げて"Lazy"について知りたい方は以下の記事が参考になると思います。
https://qiita.com/reo0612/items/c2421bca65d5723b1055

おわりに

最近夜に犬の散歩をするのにハマっています。おわり。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2