2016-04-12 14 views
0

Ich habe eine ViewController, die drei Textfelder (Name, E-Mail & Sitze) und eine Datumsauswahl hat. Darunter befindet sich eine Schaltfläche, die als Steckdose verbunden ist, um eine Reservierung an das Backend zu senden, wo sie registriert werden soll. Ich habe schon einige Dinge ausprobiert, aber aus irgendeinem Grund werden die Daten nicht gespeichert. Ich bin mit dem Backend verbunden, weil ich die API-Anrufe und den Datenspeicher in Bytes sehen kann. Könnten Sie bitte meinen Code überprüfen?Warum speichert mein Code keine Daten im Kinvey-Backend?

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

    self.sendReservation.addTarget(self, action: "sendBooking:", forControlEvents: .TouchUpInside) 

    let reservation = Booking() 
    reservation.name = userName.text 
    reservation.email = userEmail.text 
    reservation.seats = userSeat.text 
    reservation.date = NSDate(timeIntervalSince1970: 1352149171) //sample date 

      func sendBooking (sender: UIButton) { 

     KCSUser.loginWithUsername("admin", password: "leden1234", 
      withCompletionBlock: { (user: KCSUser!, errorOrNil: NSError!, result: KCSUserActionResult) -> Void in 
       if errorOrNil == nil { 

     let store = KCSAppdataStore.storeWithOptions([ 
      KCSStoreKeyCollectionName : "userReservation", 
      KCSStoreKeyCollectionTemplateClass : Booking.self 
      ]) 

        store.saveObject(
         reservation, 
         withCompletionBlock: { (objectsOrNil: [AnyObject]!, errorOrNil: NSError!) -> Void in 
          if errorOrNil != nil { 
           //save failed 
           NSLog("Save failed, with error: %@", errorOrNil.localizedFailureReason!) 
          } else { 
           //save was successful 
           NSLog("Successfully saved event (id='%@').", (objectsOrNil[0] as! NSObject).kinveyObjectId()) 
          } 
         }, 
         withProgressBlock: nil 
        ) } else { 

        NSLog("User was not registered: %@", errorOrNil.localizedFailureReason!) 

       } 

       }) 
    } 
} 

}

Antwort

0

Alle Kinvey Anträge sind mit einem berechtigten Benutzer vorgenommen werden, wenn ein Benutzer nicht vorhanden ist, eine automatische Benutzererzeugungsanlage vorhanden ist.

Vergewissern Sie sich, dass Sie ein aktiver Benutzer sind, d. H. Sie haben sich angemeldet, bevor Sie Kinvey-Anrufe tätigen. Ich habe Ihren Code ausprobiert und es hat gut funktioniert. Versuchen Sie folgende Implementierung:

KCSUser.loginWithUsername(
     "kinvey", 
     password: "12345", 
     withCompletionBlock: { (user: KCSUser!, errorOrNil: NSError!, result: KCSUserActionResult) -> Void in 
      if errorOrNil == nil { 

       //the log-in was successful and the user is now the active user and credentials saved 
       // Put your code to save the object here 

      } else { 

       //there was an error with the update save 

      } 
     } 
    ) 

Für weitere Details überprüfen Sie http://devcenter.kinvey.com/ios/guides/users#.

Wenn obige Informationen nicht helfen, lassen Sie mich wissen, welchen Fehler Sie in "errorOrNil.localizedFailureReason" erhalten.

+0

Dank für Ihre Hilfe danken. Es sendet jedoch immer noch keine Daten an das Backend .... Ich habe den loginWithUsername oberhalb der Geschäftsdatenfunktion hinzugefügt ... Was mache ich hier falsch? Ich erstelle einen aktiven Benutzer und ändere die Details der Anmeldung in meinem Code zu diesen Details. – Kevin

+0

Welchen Fehler erhalten Sie in "errorOrNil.localizedFailureReason"? –

0

versuchen diese ihre Arbeit zu verwenden, um mit mir fein

KCSUser.userWithUsername(Username_user.text!, password: Password.text!, fieldsAndValues: [KCSUserAttributeEmail : Email.text!, 
       KCSUserAttributeGivenname : UserName.text! ,KCSUserAttributeSurname : SureName.text!], 
withCompletionBlock: { (user: KCSUser!, errorOrNil: NSError!, result: KCSUserActionResult) -> Void in 

if errorOrNil == nil { 

}else{ 

} 

}) 
Verwandte Themen