2016-09-22 3 views
-1

Ich möchte alle meine globalen Variablen zurücksetzen, wenn sich ein Benutzer abmeldet, da sonst einige seiner Informationen bleiben (die Informationen in globalen Variablen).Wie setze ich alle globalen Variablen zurück?

Gibt es eine Möglichkeit, dies zu tun, ohne sie manuell auf den Anfangswert zurückzusetzen, wenn die Schaltfläche "Abmelden" gedrückt wird?

Antwort

1

Wenn ich Sie richtig verstehe, speichern Sie die Benutzerdaten in eine globale Variable? Das scheint für mich keinen Sinn zu ergeben.

Wenn Sie gleich NSUserDefaults als globale Variablen beabsichtigen, können Sie den folgenden Ansatz verwenden, um die Daten aus Ihrem Standard-UserDefaults zu löschen:

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

Bitte korrigiert mich wenn ich falsch interpretiert habe Ihre Frage.

+0

Ja, ich würde denken, NSUserDefaults zu verwenden, aber das Problem ist, dass ich brauche, dass sie über verschiedene Bildschirme zugänglich sind, deshalb habe ich sie als globale Variablen gesetzt. So zum Beispiel habe ich eine MahlzeitenArray, die in Tab1 - Rota, Tab2 - Liste der Mahlzeiten und Tab 3 - Zutaten aus den MahlzeitenArray geht. Wenn sie lokal und NSUserDefaults wären, wären sie nicht zugänglich. Oder interpretiere ich das falsch? –

+0

NSUserDefaults sind über verschiedene ViewControllers zugänglich, einfach ein neues Objekt von 'UserDefaults.standard' instatieren und über ihren Schlüssel darauf zugreifen. – cr0ss

+0

Ich wusste das nicht, nur ein paar Monate in Swift. Vielen Dank, sehr nützlich @ cr0ss –

Verwandte Themen