Ich bin sehr neu zu swift. Und brauche deine Hilfe! Ich möchte, dass, wenn sich der Benutzer zum zweiten Mal anmeldet, die App es direkt zum nächsten View-Controller namens CoreView bringen soll. Es sollte nicht nach Details fragen, aber ich weiß nicht, warum es nicht funktioniert. Und es fragt jedes Mal nach Details, wenn die App gestartet wird. Bitte überprüfen Sie den folgenden Code. Ich bekomme auch keinen Fehler. Solange und bis die App beendet oder ausgeloggt wird, sollte sich der Benutzer direkt anmelden können.Mein Code für NSUserDefaults funktioniert nicht
func pref_write()
{
// To write the data to NSUserDefaults
let prefs = NSUserDefaults.standardUserDefaults() // make a reference
print("OTP:\(OTP)")
// Adding values. Creating objects in prefs
prefs.setObject(OTP, forKey: "OTP")
print("check_OTP:\(check_OTP)")
prefs.setObject(U_ID, forKey: "U_ID")
print("Check_U_ID:\(check_U_ID)")
prefs.synchronize()
self.performSegueWithIdentifier("ContinueToCoreView", sender: self)
}
Und in der viewDidLoad Funktion:
override func viewDidLoad()
{
super.viewDidLoad()
//Read the data
self.performSegueWithIdentifier("ContinueToCoreView", sender: self)
pref_write()
let prefs = NSUserDefaults.standardUserDefaults()
check_OTP = prefs.objectForKey("OTP")!
check_U_ID = prefs.objectForKey("U_ID")!
prefs.objectForKey("U_ID")
print("prefs:\(prefs)")
prefs.synchronize()
}
Dank!
Wenn Sie nur einen Zustand halten wollen, während die Anwendung ausgeführt wird, und Sie wollen nicht halten der Zustand, als die App getötet wurde; Sie müssen den Status daher nicht in den 'UserDefaults' speichern. Wie auch immer, wenn Sie einen Zustand in 'UserDefaults' speichern, sollten Sie den gespeicherten Wert überprüfen und basierend auf seinem Wert Ihre Entscheidung treffen. Ich sehe in Ihrem Code keine Überprüfungen von Werten, die Sie in 'UserDefaults' speichern. –
Erstens möchte ich die Daten speichern, und nicht den Zustand. Wenn ich Objekte in Prefs erstelle. Es sollte dort gespeichert werden. Und wenn ich in irgendeiner Weise falsch liege ... bitte führe mich durch das. Ich möchte die Details in UserDefaults speichern, bis die App beendet ist. – Mili
In Write-Methode schreiben Sie auf korrekte Weise, aber in ViewDidLoad lesen Sie nur die Werte und überprüfen sie nie und auch vor dem Lesen sind Sie Call-Write-Methode, die wahrscheinlich keinen Sinn machen. Außerdem feuern Sie immer den "ContinueToCoreView" -Schnitt, der auch keinen Sinn ergibt. Ist es die ViewDidLoad Ihres ersten View-Controllers? –