I am using lazy var in my application. Lazy var initialized only once. When I remove the application from tray then it will clear and initialize with new values. Can we clear lazy var on foreground state? How to clear value from lazy var in swift iOS?
答案 0 :(得分:0)
事情是lazy vars
不是常量。您始终可以在其中设置值。它们只是在需要时才被初始化,一旦它们内部有值,它们就会返回该值。因此,使用闭包来“创造”价值。
让我们使用这个信息,以这种方式玩lazy var。在这里,我们使用另一个lazy var闭包来捕获整数存储的属性值,并成功地将其重新分配给惰性变量。
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