清除struct / class中的静态变量

时间:2018-02-12 12:27:50

标签: ios swift struct static

我有一个带有一些静态字段的结构,如下所示。

struct User {
    static var userId: String?
    static var email: String?
    static var phone: String? 
}

当用户登录时,会在其他视图控制器中设置和使用这些变量。当用户退出时,我想清除所有这些细节。是否有快速清除方法,或者我应该单独清除它们

User.userId = ""
User.email = ""
User.phone = ""

2 个答案:

答案 0 :(得分:2)

您可以拥有一个可选的静态共享User变量,而不是拥有静态变量,并在用户注销时将其设置为nil

struct User {

    static var shared: User?

    var userId: String?
    var email: String?
    var phone: String?
}

User.shared = nil // user logged out
User.shared = User(userId: ..., email: ..., phone: ...) // user logged in

答案 1 :(得分:1)

您可以在结构中设置一个函数来执行该操作或更好地将用户设置为nil并检查应用中的nil逻辑