Je travaille sur une application iOS universelle et j'aimerais voir le SQL brut dans les journaux lorsque je débogue. Il y a quelques informations dans ce billet de blog sur la façon d'activer la journalisation SQL brute pour le développement iOS Core Data. L'exemple donné est pour Xcode 3 et je ne sais pas comment l'activer dans Xcode 4.
J'ai essayé "Product" -> "Edit Scheme" et ajouté " -com.apple.CoreData.SQLDebug 1 " à "Arguments Passed on Launch", mais je ne vois toujours aucune sortie dans les logs. Je ne sais pas si je regarde au mauvais endroit ou si je passe simplement les arguments de manière incorrecte.
Réponses:
Vous devriez regarder au même endroit que vous obtenez NSLOGS
Et vous devriez aller à Produit -> Modifier le schéma -> Ensuite, dans le panneau de gauche, sélectionnez Exécuter YOURAPP.app et accédez à l'onglet Arguments du panneau principal.
Là, vous pouvez ajouter un argument transmis au lancement.
Vous devez ajouter
-com.apple.CoreData.SQLDebug 4
(un nombre entre 1 et 4, un nombre plus élevé le rend plus verbeux)Appuyez sur OK et vous êtes prêt.
La clé ici est de modifier le schéma que vous utiliserez pour les tests.
la source
UPDATE ZTABLE SET ZCOLUMN = ? WHERE ZID = ?
et il n'est pas très utile de vraiment voir quelles sont les données envoyéesXCode 4
C'est au même endroit que je gère mon NSZombieEnabled
Produit -> Modifier le schéma -> Exécuter le débogage YouApp.app
Sous "Arguments transmis au lancement", collez exactement:
-com.apple.CoreData.SQLDebug 1
Attention - ce truc est très détaillé, si vous rencontrez des problèmes de Core Data, cela vaut peut-être la peine d'être examiné, mais cela peut aussi contenir plus d'informations que ce dont vous avez besoin sur la mauvaise chose.
la source
J'avais un problème avec cela, puis j'ai réalisé que c'était une omission idiote, ce qui, je suppose, est une erreur de venue pour certains d'entre vous. Quand j'ai entré l'argument
Xcode (4.3.1)
, j'ai omis le tiret principal. Je ne l'aurais pas fait si je l'avais entré sur une ligne de commande, mais dans l'interface graphique, je l'avais omis. Je n'ai trouvé aucune différence entre la saisie de 2 arguments distincts ou d'un seul (comme certains articles l'avaient suggéré). Alors utilisez:-com.apple.CoreData.SQLDebug 1
et pas simplement:
com.apple.CoreData.SQLDebug 1
qui a fonctionné pour moi à la fois dans un simulateur et un appareil réel
la source
Notez que vous pouvez mettre différents niveaux de la valeur transmise. Qui fournissent de plus en plus de verbosité.
la source