Почему мой код не сохраняет данные в Kinvey Backend?

У меня есть viewController с тремя текстовыми полями (имя, адрес электронной почты и места) и средство выбора даты. Ниже есть кнопка, которая подключается как выход для отправки брони на бэкенд, где она должна быть зарегистрирована. Я уже пробовал несколько вещей, но по какой-то причине данные не сохраняются. Я подключен к серверной части, потому что вижу вызовы API и хранение данных в байтах... Не могли бы вы проверить мой код?

    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!)

                }

                })
    }
}

}


person Kevin    schedule 12.04.2016    source источник


Ответы (2)


Все запросы Kinvey должны выполняться с использованием авторизованного пользователя, если пользователь не существует, существует средство автоматической генерации пользователей.

Убедитесь, что вы являетесь активным пользователем, т. е. вы вошли в систему, прежде чем делать какие-либо вызовы Kinvey. Я попробовал ваш код, и он работал нормально. Попробуйте следующую реализацию:

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

            }
        }
    )

Для получения дополнительной информации см. http://devcenter.kinvey.com/ios/guides/users#< /а>.

Если приведенная выше информация не помогает, сообщите мне, какую ошибку вы получаете в "errorOrNil.localizedFailureReason".

person Pranav Jadhav    schedule 13.04.2016
comment
Спасибо за помощь. Тем не менее, он по-прежнему не отправляет никаких данных на серверную часть... Я добавил loginWithUsername над функцией хранения данных... Что я здесь делаю неправильно? Я создаю активного пользователя и изменяю данные для входа в свой код на эти данные. - person Kevin; 13.04.2016
comment
Какую ошибку вы получаете в errorOrNil.localizedFailureReason? - person Pranav Jadhav; 14.04.2016

попробуй использовать это, со мной все в порядке

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{

}

})
person rami mokhtar    schedule 28.05.2016