2011-07-29 4 views
-1

J'ai traité ce problème pendant près d'une semaine. J'utilise un framework appelé restkit et j'ai essayé de le déboguer en passant par le code dans RestKit. L'endroit où il arrête de s'exécuter plus loin est quand j'essaye d'enregistrer à un NSManagedObjectContext. Je joins un exemple de projet de test qui peut être téléchargé here. Au fond de reproduire l'erreur que vous devez faire ce qui suit:problème de données de base lors de l'enregistrement

  1. Exécutez l'application pour la première fois jusqu'à ce que les données sur l'affichage du tableau des charges
  2. Arrêter l'application
  3. Exécutez l'application pour la deuxième fois, alors vous verrez un sans fin de chargement spinner

Ceci est essentiellement bloqué quand il essaie de sauver le contexte de l'objet géré, qui est situé sur la RKManagedObjectStore.m, la méthode d'enregistrement (je l'ai mis un point de jonction). J'ai essayé de m'assurer que tout fonctionne, à partir du modèle, etc ... mais je ne sais pas ce qui se passe vraiment ici. Puis-je avoir une aide s'il vous plait? Le projet de test que j'ai mis un lien hypertexte ci-dessus est très simple ...

+0

Le fichier 'Test.xcdatamodeld' est corrompu car il ne contient aucun fichier' element' ou 'layout'. – TechZen

+1

Est-ce que vous vous attendez vraiment à ce que les gens téléchargent plusieurs fichiers, construisent un projet et parcourent des milliers de lignes de code pour trouver votre problème? Le moins que vous pourriez faire serait de poster le code où le blocage se produit. – TechZen

+0

J'ai poussé mon exemple de code alors maintenant c'est à github – aherlambang

Répondre

0

Le projet auquel vous liez n'est pas construit hors de la boîte.

Avez-vous essayé d'imprimer l'instance NSError à partir d'une sauvegarde échouée? Les données de base sont vraiment bonnes pour expliquer les erreurs rencontrées. Presque trop bon, car vous aurez probablement beaucoup de sous-erreurs dans cette erreur à parcourir.

+0

il a besoin de trois20 dans votre bibliothèque, donc vous devez en télécharger un .. et je ne peux pas imprimer l'erreur comme avant la fin de l'enregistrement .. il charge juste sur et sur – aherlambang

+0

en d'autres termes après avoir appelé save au NSManagedObjectContext juste n'exécutera pas la ligne suivante dans le code ... c'est comme une boucle infinie suspendue dedans – aherlambang

1

C'est un problème très étrange. Je voudrais jeter un oeil à DBDiscussionBoardExample inclus avec RestKit, et peut-être recommencer. Il semble qu'il y ait une boucle infinie quelque part dans l'interface de RestKit avec Three20.

Je trouve également étrange que votre serveur ne répondra pas avec json à moins que le chemin ne contienne ".json", même si l'en-tête demande json.

Vous vous épargnerez beaucoup de maux de tête si vous utilisez RestKit sans Three20. À moins que votre application ait besoin de Three20 pour une raison quelconque, je trouve que cela ne fait que compliquer le code. RestKit a une interface très propre pour accéder à CoreData tel qu'il est. Cela dit, vous pouvez le signaler comme un bug sur le dépôt github de RestKit si vous le souhaitez.

Et j'ai dû ajouter manuellement Three20 à votre projet pour le charger. Après avoir regardé votre projet, je vois pourquoi vous ne pouvez pas vraiment pointer vers un seul point qui causait un problème, mais vous devriez essayer de le rendre plus facile pour les personnes qui veulent aider - envisager d'inclure des dépendances avec votre projet, ou configurer un git repo avec sous-modules.

+0

Evan, j'apprécie pour la réponse .. J'ai regardé le DBDiscussionBoardExample hier et je n'arrive pas à trouver le problème ainsi que.J'ai demandé à Blake de se pencher sur ce problème et pourtant il trouve ça bizarre aussi. Je voudrais vraiment revenir à mon projet avant trois heures 20, mais j'ai passé beaucoup de temps à porter mon projet avec trois20 à. Prenant cela comme une leçon et ne jamais utiliser trois fois de plus. – aherlambang

+0

Vous pouvez consulter nimbus à l'avenir: https://github.com/jverkoey/nimbus. Il est censé être un remplacement de fonctionnalités pour Three20 qui supprime les dépendances spaghetti et le manque de documentation et de tests. C'est aussi écrit par la personne qui a pris le contrôle de Three20 auprès de Joe Hewitt. Ce n'est pas encore prêt pour la production, mais c'est quelque chose à surveiller. –

+0

J'ai gardé un oeil sur Nimbus pendant un moment .. trop mauvais RestKit n'a pas encore utilisé nimbus – aherlambang

Questions connexes