0
我在我的應用程序中使用lazy var。 Lazy var只初始化一次。當我從托盤中刪除應用程序時,它將清除並用新值初始化。我們可以清除前臺狀態的懶惰變量嗎? 如何在swift iOS中從lazy var中清除值?如何在swift iOS中從lazy var中清除值?
我在我的應用程序中使用lazy var。 Lazy var只初始化一次。當我從托盤中刪除應用程序時,它將清除並用新值初始化。我們可以清除前臺狀態的懶惰變量嗎? 如何在swift iOS中從lazy var中清除值?如何在swift iOS中從lazy var中清除值?
事情是lazy vars
不是常數。你可以隨時在裏面設置數值。他們只是在需要時才被初始化,一旦他們有了價值,他們就會返回這個價值。因此,使用閉包來「創造」價值。
讓我們使用這個信息,以這種方式玩懶惰的變種。在這裏,我們使用了另一個lazy var閉包來捕獲整數存儲的屬性值,併成功地將其重新分配給lazy變量。
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