Speichern von kleinen Daten Swift 4.2

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Speichern von kleinen Daten Swift 4.2

    Hallo zusammen,

    ich muss ein paar Daten in meine App speichern.

    Mit Text funktioniert das hervorragend. Aber sobald ich eine Zahl habe also Int, habe ich ein Problem in Zeile 20.

    Fehlermeldung "Initializer for conditional binding must have Optional type, not 'Int' "

    Ich komme nicht darauf wie ich es deklarieren muss. Bitte um Hilfe.

    Vielen Dank! und Grüße,
    Uwe

    Quellcode

    1. func save() {
    2. if let textValue = self.name1Rassehuhn.text {
    3. let defaults = UserDefaults.standard
    4. defaults.setValue(textValue, forKey: "brutTabTextValue1")
    5. if let textValue = self.name2Rassehuhn.text {
    6. let defaults = UserDefaults.standard
    7. defaults.setValue(textValue, forKey: "brutTabTextValue2")
    8. if let textValue = self.datumStartTextfield.text {
    9. let defaults = UserDefaults.standard
    10. defaults.setValue(textValue, forKey: "brutTabTextValue3")
    11. if let textValue = self.bruteierStueck1.text {
    12. let defaults = UserDefaults.standard
    13. defaults.setValue(textValue, forKey: "brutTabTextValue4")
    14. if let textValue = self.bruteierStueck2.text {
    15. let defaults = UserDefaults.standard
    16. defaults.setValue(textValue, forKey: "brutTabTextValue5")
    17. if let textValue = self.startDatumTabelle.text {
    18. let defaults = UserDefaults.standard
    19. defaults.setValue(textValue, forKey: "brutTabTextValue6")
    20. if let textValue = self.counterLabelLueften {
    21. let defaults = UserDefaults.standard
    22. defaults.setValue(integer_t.self, forKey: "brutTabTextValue7")
    23. }
    24. }
    25. }
    26. }
    27. }
    28. }
    29. }
    30. }
    Alles anzeigen
  • Du kannst mit setValue:forKey: keine primitiven Datentypen speichern. Entweder wandelst Du den Integer-Wert z. B. in ein NSNumber-Objekt um oder Du verwendest die setInteger:forKey:-Methode.

    Ausserdem solltest Du einmal überlegen, ob die if-Statements wirklich alle geschachtelt sein müssen ... wirklich gut lesbar (und m. E. nötig) ist Dein Konstrukt oben nicht :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Hallo Mattes,

    vielen Dank, habe den Fehler gefunden. War nur dienstlich unterwegs und hatte keine Zeit zu antworten.

    Jetzt habe ich aber trotzdem noch eine Frage.

    Ich möchte eine String Variable in eine If Abfrage benutzen und zwar möchte ich abfragen, wenn die Variable String einen Wert enthält soll etwas ausgelöst werden. Ein Int Variable für die Abfrage auszulesen ist simpel.
    Wie frage ich eine String Variable ab so das ich sagen kann ja es ist ein Inhalt vorhanden also mache das oder jenes.

    Vielen Dank schon einmal.

    Grüße,
    Uwe