2017-10-15 2 views
0

Ich versuche, eine Reihe von Zeichenfolgen mit UserDefaults anhängen und speichern, aber mein Code ersetzt die Daten anstelle des Hinzufügens zum Array jedes Mal, wenn es aufgerufen wird, was bin ich fehlt?Wie Wert Benutzer Benutzerstandardarray mit Swift 4

if Plus == true 
    { 

     if typeOfMath != [""] 
     { 

     typeOfMath.append("Addition") 
     UserDefaults.standard.set(typeOfMath, forKey: "typeMath") 
     print ("\(typeOfMath)") 
     typeOfMath = [""] 

     } 
    } 

Antwort

1

Da Sie versuchen, den Wert jedes Mal in UserDefaults festzulegen, überschreibt es tatsächlich den Wert für den Schlüssel.

Was Sie tun müssen, ist:

  1. Lesen Sie die vorhandenen Array in UserDefaults
  2. Anfügen neuen Wert zu diesem Array
  3. schreiben dieses Array zurück zu UserDefaults.
+0

Verstanden! Danke! Ich fügte hinzu, wenn var mathData = UserDefaults.standard.stringArray (forKey: "typeMath") { mathData.append ("\ (typeOfMath)") typeOfMath = mathData } meine Daten sieht wie folgt aus: [ "Addition", "[\" Addition \ "]", "[\" Addition \ "]"], wie werde ich die Klammern los, so dass es wie ["Addition", "Addition", "Addition"] aussieht? –

+0

@ Daniel.wu Ich denke, Sie können diese 'mathData.append (contentsOf: typeOfMath)' – 3stud1ant3

+0

, die funktionierte! Danke! –