-1

を初期化せずに外部から怠惰なVARを設定します。 varの定義。 c.exif.a = newExif.aのように、どうやってそれを避け、独自の構造体メンバを作ることができますか?私はSwift 3.0を使用しています。は、私はEXIFDataが構造体である怠惰VARの定義を使用してクラスを定義し

追加: 私はこの方法で解決しました:同じクラスの一部として、私は遅延初期設定で自分の値を割り当てるために必要な情報を使用します。したがって、そこにはif文が1つしかありません。標準的な初期化を避けるために、余分な余分なやり方や特別なトリックは不要です。

+0

初期化子を呼び出さない 'c.exif = newExif'を割り当てることができます。 –

+0

あなたがそれをしたとき何が起こったのですか? – matt

+0

私はこのinitを呼び出しました!それが理由。 –

答えて

2

読み込みの前に通常値を割り当てるだけでは、遅延初期化プログラムは実行されません。

class Class { 
    lazy var lazyVar: String = { 
     print("Lazy initializer ran") 
     return "Default value" 
    }() 
} 

let object = Class() 
object.lazyVar = "Custom value" 
print(object.lazyVar) 
関連する問題