如何重置所有全局变量?

问题描述 投票:0回答:2

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

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

swift global-variables logout
2个回答
1
投票

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

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

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

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


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()
© www.soinside.com 2019 - 2024. All rights reserved.