2016-12-07 5 views
3

Mein Textfeld wird nicht gespeichert. Mein Code ist unten aufgeführt. Dankuitextfield in swift 3 nicht speichern

class ViewController: UIViewController,UITextFieldDelegate { 
@IBOutlet weak var textext: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 
@IBAction func savesavesave(_ sender: Any) { 
    let myText = textext.text 
    UserDefaults.standard.set(myText, forKey: "myKey") 

} 
+0

http://stackoverflow.com/a/34803102/2303865 –

Antwort

0

Synchronisieren Sie die Benutzereinstellungen mit seiner Methode und testen, ob arbeiten ich aus meinem Gedächtnis zu schreiben:

UserDefaults.standard.set(myText, forKey: "myKey") 

UserDefaults.standard.synchronize() 

EDIT von apple documentation

// Hinweis dass wir nicht mit dem Dateisystem oder irgendetwas synchronisieren; Dies geschieht , wenn die App beendet. Es gibt Zeiten, wenn eine explizite Synchronisierung erforderlich sein könnte, aber oft ist es nicht. Unnötiges Synchronisieren kann auch ein Leistungsproblem darstellen.

Nach Apfel docs ich versteht (Sie denken, sonst kann), dass, wenn Sie den Wert während der Laufzeit erhalten möchten, und nicht in Ihre Variable Einsparung - Sie manuell

Erneut bearbeiten Dank synchronisieren sollte zu @LeoDabus Ich verstehe, dass es vielleicht auch zur Laufzeit verfügbar ist. Zählen Sie also nicht meine Antwort

+2

Keine Notwendigkeit zu zwingen synchronisieren –

+0

Ich glaube, es am besten Praxis ist es zu zwingen, in allen Beispielen und Tutorials es so ist .. Es sei denn, etwas hat sich geändert und ich weiß es nicht ... – Yitzchak

+0

Zeig mir eine von Apple, wo sie es tun. Übrigens habe ich nicht abgestimmt –

0

Stellen Sie sicher, dass Ihr Textfeld nicht erste Antwort ist. Zum Beispiel können Sie die folgenden Code aufrufen vor dem Speichern:

@IBAction func savesavesave(_ sender: Any) { 
    textext.resignFirstResponder() 
    let myText = textext.text 
    UserDefaults.standard.set(myText, forKey: "myKey") 
} 
+0

Wie kann ich den Text zu retten? Wenn ich die View-Controller ändere, werden alle Daten gelöscht. –

0

du versuchen sollte Textfeld in UserDefaults für das Speichern:

let myText = TextFiled1.text 
UserDefaults.standard.set(myText, forKey: "myKey") 

Wenn Sie diesen Textfeld Wert erhalten möchten, dann schreiben:

let value = UserDefaults.standard.string(forKey: "myKey") 
print(value!) 
0

Ja, es ist nicht notwendig, Synchronisierung findet statt, wenn App kurz vor dem Beenden steht. Um während eines App-Starts auf die Informationen zugreifen zu können, muss die Synchronisierung durchgeführt werden. Für weitere Informationen können Sie überprüfen: iOS NSUserDefaults access before synchronize completion

Verwandte Themen