我在登录时在项目中使用了惰性var。当用户首次成功登录时,懒惰的var userLoginInfo首次从数据库中获取数据,并且显示正确的数据。
当我再次执行登录操作时,它将显示首次初始化的登录数据。那么,如何第二次重新初始化懒惰的var?
lazy var userLoginInfo:LoginInfo = {
return self.fetchLogin()
}()
最佳答案
闭包末尾的一对大括号表示,当首次访问该属性时,闭包被称为一次。
但这并不意味着您不能为该属性分配新值。
例如,这是有效的代码
lazy var userLoginInfo : LoginInfo = {
return self.fetchLogin()
}()
func resetLoginInfo()
{
userLoginInfo = fetchLogin()
}
如果变量很少更改,这可能很有用。如果不是Josh的答案中所述的计算属性,那是更好的选择。