Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

[Swift]修飾子のLazyとは?

はじめに

最近はコードで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

おわりに

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?