0
私はアプリケーションでlazy varを使用しています。 Lazy varは一度だけ初期化されます。トレイからアプリケーションを削除すると、新しい値でクリアされ初期化されます。私たちは前景の状態で怠惰なvarをクリアすることはできますか? 迅速なiOSでlazy varの値をクリアするには?迅速なiOSでlazy varの値をクリアするには?
私はアプリケーションでlazy varを使用しています。 Lazy varは一度だけ初期化されます。トレイからアプリケーションを削除すると、新しい値でクリアされ初期化されます。私たちは前景の状態で怠惰なvarをクリアすることはできますか? 迅速なiOSでlazy varの値をクリアするには?迅速なiOSでlazy varの値をクリアするには?
事はlazy vars
は定数ではありません。その中には常に値を設定できます。必要になったときに初期化され、内部に値が設定されると、その値が返されます。したがって、クロージャを使用して値を「作成」します。
この情報を使用して、この方法で遅延型のバリューを再生できます。ここでは、別の遅延閉包を使用して整数の格納されたプロパティ値を取得し、それをレイジー変数に正常に再割り当てしました。
class Test {
var fooValue:Int = 20
lazy var foo = {() -> Int in
print("foo called")
return self.fooValue*3
}
lazy var value:Int = foo()
}
let test = Test()
test.value // foo called
test.value // prints 60
test.fooValue = 40
test.value = test.foo() // foo called
test.value // prints 120
swift3では[this](https://stackoverflow.com/a/40847994/5555803)が動作します。 –
私は上記のコメント^^^のリンク先のClearableLazyソリューションも使用しています。 – Brynjar