App mit Datenbankverknüpfung [Error]

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

  • App mit Datenbankverknüpfung [Error]

    Hallo zusammen :)

    Ich bin Lukas und neu hier im Forum! Da ich ein absoluter Anfänger in Swift bin und sehr viel über das Internet lerne scheitere ich gerade an meiner App.

    Nun versuche ich mein Glück in einem deutschen Forum!

    Folgendes:



    Debugger schrieb:

    Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}
    Das ist die Fehlermeldung wenn ich den User registrieren möchte!

    Ich möchte einen User registrieren und dieser soll in der Datenbank gespeichert werden. Mit "Postman" konnte ich dies schon erfolgreich testen. Etwas stimmt in meinem Code nicht ganz....

    Ich weiß nicht ganz was die Experten hier zur Fehler suche benötigen, aber ich poste mal das wichtigste von meinem Code.


    Quellcode

    1. let myUrl = NSURL(string: "http://127.0.0.1/MySQL_PHP/userRegister.php")
    2. var request = URLRequest(url: myUrl as! URL)
    3. request.httpMethod = "POST"
    4. // let config = URLSessionConfiguration.default
    5. let session = URLSession.shared
    6. let postString = "email=\(userEmail)&passwort=\(userPasswort)&vorname=\(userVorname)&nachname=\(userName)&benutzer=\(userBenutzer)"
    7. request.httpBody = postString.data(using: String.Encoding.utf8)
    8. let task = session.dataTask(with: request) { (data, response, error) in
    9. if error != nil {
    10. print("error=\(error)")
    11. return
    12. }
    13. do {
    14. // var err: NSError?
    15. var json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.allowFragments) as? [String:Any]
    16. if let parseJSON = json {
    17. var resultValue = parseJSON["status"] as? String
    18. print("result: \(resultValue)")
    19. var isUserRegistered: Bool = false
    20. if (resultValue == "Success") {
    21. isUserRegistered = true
    22. }
    23. var messageToDisplay: String = parseJSON["message"] as! String!
    24. if (!isUserRegistered){
    25. messageToDisplay = parseJSON["message"] as! String!
    26. }
    27. DispatchQueue.main.async(execute: {
    28. var myAlert = UIAlertController(title:"Alert", message: messageToDisplay, preferredStyle: UIAlertControllerStyle.alert)
    29. let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default){
    30. action in
    31. self.dismiss(animated: true, completion: nil)
    32. }
    33. myAlert.addAction(okAction)
    34. self.present(myAlert, animated: true, completion: nil)
    35. })
    36. }
    37. } catch let error as NSError{
    38. print(error)
    39. }
    40. }
    41. task.resume()
    42. }
    43. func displayMyAlertMessage(userMessage:String)
    44. {
    45. var myAlert = UIAlertController(title:"Fehler", message: userMessage, preferredStyle: UIAlertControllerStyle.alert)
    46. let okAction = UIAlertAction(title:"Ok", style: UIAlertActionStyle.default, handler:nil)
    47. myAlert.addAction(okAction)
    48. self.present(myAlert, animated: true, completion:nil)
    49. }
    Alles anzeigen


    Ich habe nun einiges in Google gesucht, aber nichts gefunden was mir eine direkte Antwort gab.

    Hoffentlich kann mir jemand helfen :)



    Mit freundlichen Grüßen

    Lukas
  • Danke für eure Antworten !

    Wie gesagt ich bin dort absolut ein Anfänger :/

    Ich hab mein MacBook gerade nicht zur Hand. Aber ich glaube ich hab vorhin in die JSON Datei geschaut & dort war nur das Standard Zeug drinnen (zB author etc). Ich glaub das wird auch der Fehler sein oder? Da er ja keine Werte sozusagen mitgibt?!

    Verbessert mich wenn ich falsch liege...
  • nussratte schrieb:

    Was hat das mit nsurl und URL zu tun?
    Wenn man so wie oben explizit nach NSURL fragt, um es dann explizit (as!) nach URL zu casten, läuft was falsch...

    matz schrieb:

    Ach hab mir den Code nicht richtig durchgelesen, dachte @torquato meinte die !Mea Culpa.
    Natürlich sind die ! hier grausig. Üblicherweise prangere ich die ja auch immer wieder an.^^

    Anfänger benutzen die anscheinend gerne so zahlreich, weil sie sie copy&paste aus Beispielcode übernehmen. In Beispielcode stehen sie aber idR nur, um den Code kurz zu halten und den Fokus auf das wesentliche zu lenken. Daß wirklicher Produktivcode anders aussehen muß/ sollte, wird dann nicht verstanden, sondern das dann als Vorbild genommen. Steht ja schließlich so im 'Musterbeispiel'…
    Die ! entpuppen sich irgendwie als kontraproduktives 'Lernfeature' in Swift…

    In diesem Fall dachte ich aber eher an die Logik. "Mach ein Assignement und wenn x, dann mach das gleiche Assignement nochmals"... :S
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • Hi Lukas,

    erstmal willkommen im Forum! :D

    Abgesehen vom Tipp bzgl. eines wahrscheinlich fehlerhaften JSONs und der unsinnigen Zuweisung von messageToDisplay: Xcode bietet recht gute Möglichkeiten, über Breakpoints und Debug-Konsole Fehleranalyse zu betreiben. Ich vermute einmal, dass Dir deren Prinzip von anderen IDEs bekannt ist? Hier lohnt sich auf jeden Fall eine Einarbeitung :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.