2017-08-09 3 views
0

Parse Server sur Heroku (la version open source bien sûr).Parse Ajout d'objets ne fonctionnant pas

Ceci est mon code iOS dans swift. Je dois dire que le Parse SDK fonctionne bien. Je peux interroger d'autres tables et faire beaucoup de choses, donc je sais que tout va bien. J'ai interrogé des données existantes seulement jusqu'à maintenant, mais aujourd'hui j'ai essayé d'ajouter des choses à la table pour la première fois, et j'ai du mal avec ça.

Voici mon code:

let step_object = PFObject(className: "driver_steps") 
step_object.add("Was directed to drive to first location", forKey: "step_string") 
step_object.saveInBackground() 

L'objet imprimé à la console semble bien me:

print("the object is \(step_object)") 

sorties:

the object is <driver_steps: 0x1844b54e0, objectId: new, localId: (null)> { 
ACL = "<PFACL: 0x18043f720>"; 
"step_string" =  (
    "Was directed to drive to first location" 
); 
} 

Rien n'est sauvé pour moi dans la base de données cependant. Je me demande où je me suis trompé avec ça?

+1

Utiliser 'saveInBackground {(succès, erreur) dans ...}' la place et imprimer le succès et l'erreur à l'intérieur – nathan

+0

Merci @nathan. Donc, cela m'a donné l'erreur suivante, donc j'ai compris que mon code initial "step_object.add" était faux. En effet, la façon correcte de saisir un nouvel objet est différente et je l'affiche dans ma réponse. L'erreur que j'ai récupérée était: Chaîne attendue mais le tableau a été obtenu "UserInfo = {code = 111, temporaire = 0, erreur = incompatibilité de schéma pour driver_steps.step_string; String attendu mais a obtenu Array, NSLocalizedDescription = discordance de schéma pour –

+1

Utiliser l'indexation ('step_object [" step_string "] =" A été dirigé vers le premier emplacement "') pour définir les attributs d'un objet ou mieux encore, en sous-classe – nathan

Répondre

1

La manière correcte d'ajouter un nouvel objet complet à l'aide de Parse SDK est différente de celle de ma question. Il doit être aussi si:

let step_object = PFObject(className: "driver_steps") 
step_object["step_string"] = "Was directed to drive to first location" 
step_object.saveInBackground()