[Swift] lazy keyword


概要
SWIFTは、iOSを学ぶたびに、比較的疎いキーワードが3つあります.
  • lazy
  • weak self
  • @escaping.. など
  • 程度は私にとって非常によく知られていない.
    だからこの3つの中で今日はlazyキーワードを知るために文章を書きます.
    iOS
    iOSは、オペレーティングシステムでアプリケーションを実行するときに、メモリの使用量が大きい場合はアプリケーションを閉じます.
    したがって,アプリケーション開発者はメモリの使用を制御しながらコードを記述する必要がある.
    実際、iphoneが常に少ないRAMを発売していても、アプリケーションを駆動する場合、いつも快適です.
    プロセッサだけでなく、オペレーティングシステムの調整もあるようです.
    いずれにしても、iOS開発者は空間の複雑さの要因を最適化する必要があると考えています.
    Lazy変数
    公式文書の定義は次のとおりです.
    Lazy変数は、最初に使用するまで初期値を計算しない属性です.ユーザーは、宣言子にlazyを追加することで、lazyストレージ変数を表すことができます.
    ユーザーは、letではなくvarとしてlazy変数を常に宣言する必要があります.初期値が計算されていないため、初期化完了時間を測定できません.したがって,定数ではなく変数として宣言する必要がある.
    一例としてSNSの代表的なINSTAGRAM Story
    最初から持ってくると、見ないかもしれませんが、メモリだけを占めて見るのではないでしょうか.
    ユーザーが表示をクリックしたときにのみインポートする必要があります.
    コードで例を挙げる.
    import UIKit
    
    
    struct InterviewCandidate {
        var isiOS:Bool?
        
        lazy var iOSResumeDescription: String = {
            return "I am an iOS developer"
        }()
        lazy var androidResumeDescription: String = {
            return "I am an android developer"
        }()
    }
    
    var person1 = InterviewCandidate()
    person1.isiOS = true
    
    if person1.isiOS! {
        print(person1.iOSResumeDescription)
    } else {
        print(person1.androidResumeDescription)
    
    }
    nilと呼ばない要素が処理されます.
    lazyプロパティに関連するモジュールは、プログラムの使用(読み取り)時にのみ実行されます.
    したがって、うまく使えないと、不要な割当てや実行を防止することができる.
    また、モジュール内でselfを使用して参照すると、メモリ漏洩が発生する重要な要因であり、lazy propertyのモジュール内で循環参照は発生しないため、selfキーワードを使用できます.