如何重置所有全局变量?

时间:2016-09-22 19:27:54

标签: swift global-variables logout

我希望在用户注销时重置所有全局变量,否则它们的一些信息将保留(全局变量中的信息)。

有没有办法在按下注销按钮时手动将它们重置为初始值时执行此操作?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您将用户数据保存到全局变量中?这对我来说似乎没有意义。

如果您打算将 NSUserDefaults 等同为全局变量,则可以使用以下方法从标准UserDefaults中删除数据:

private func cleanUserDefaultsOnLogout() {
    let standardDefaults = UserDefaults.standard
    for key in standardDefaults.dictionaryRepresentation().keys {
        standardDefaults.removeObject(forKey: key)
    }
    standardDefaults.synchronize()
}

如果我误解了你的问题,请纠正我。

答案 1 :(得分:0)

extension UserDefaults {
    class func clean() {
        guard let aValidIdentifier = 
Bundle.main.bundleIdentifier else { return }
        self.standard.removePersistentDomain(forName: 
aValidIdentifier)
        self.standard.synchronize()
    }
}   

use it 
UserDefaults.clean()