2016-09-22 117 views
-1

我想在用户注销时重置所有全局变量,否则其中一些信息将保留(全局变量中的信息)。如何重置所有全局变量?

有没有办法做到这一点,而没有手动将它们重置为初始值时,按下注销按钮?

回答

1

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

如果您正打算等于NSUserDefaults的全局变量,你可以用下面的办法来从你的标准UserDefaults删除数据:

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

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

+0

是的,我想使用NSUserDefaults,但问题是我需要它们跨不同的屏幕访问,这就是为什么我把它们作为全局变量。因此,例如,我有一个进入Tab1的mealArray - Rota,Tab2 - 膳食列表和Tab 3 - 来自mealsArray的成分。如果他们是本地和NSUserDefaults,那么他们将无法访问。或者我误解了这个? –

+0

NSUserDefaults可以通过不同的ViewController访问,只需创建一个'UserDefaults.standard'对象并通过它们的密钥访问它们。 – cr0ss

+0

我不知道,只有几个月快速。非常感谢你,非常有用@ cr0ss –