Ich arbeite an einer universellen iOS-App und möchte beim Debuggen das unformatierte SQL in den Protokollen sehen. In diesem Blogbeitrag finden Sie einige Informationen zum Aktivieren der SQL-Rohprotokollierung für die Entwicklung von iOS-Kerndaten. Das angegebene Beispiel bezieht sich auf Xcode 3 und es ist mir einfach nicht klar, wie ich dies in Xcode 4 aktivieren kann.
Ich habe "Product" -> "Edit Scheme" ausprobiert und " -com.apple.CoreData.SQLDebug 1 " zu "Arguments Passed on Launch" hinzugefügt, sehe aber immer noch keine Ausgabe in den Protokollen. Ich bin mir nicht sicher, ob ich am falschen Ort suche oder nur die Argumente falsch übergebe.
Antworten:
Sie sollten sich den gleichen Ort ansehen, an dem Sie NSLOGS erhalten
Gehen Sie zu Produkt -> Schema bearbeiten -> Wählen Sie dann im linken Bereich die Option YOURAPP.app ausführen und wechseln Sie zur Registerkarte Argumente des Hauptfensters.
Dort können Sie ein Argument hinzufügen, das beim Start übergeben wurde.
Sie sollten hinzufügen
-com.apple.CoreData.SQLDebug 4
(Zahl zwischen 1 und 4, höhere Zahl macht es ausführlicher)Drücken Sie OK und Sie sind fertig.
Der Schlüssel hier ist, das Schema zu bearbeiten, das Sie zum Testen verwenden werden.
quelle
UPDATE ZTABLE SET ZCOLUMN = ? WHERE ZID = ?
und es ist nicht sehr nützlich, wirklich zu sehen, welche Daten gesendet werdenXCode 4
Es ist an der gleichen Stelle, an der ich mein NSZombieEnabled verwalte
Produkt -> Schema bearbeiten -> YouApp.app-Debug ausführen
Fügen Sie unter "Beim Start übergebene Argumente" genau Folgendes ein:
-com.apple.CoreData.SQLDebug 1
Warnung - dieses Zeug ist sehr ausführlich. Wenn Sie Probleme mit den Kerndaten haben, ist dies möglicherweise einen Blick wert, aber es kann auch mehr Informationen enthalten, als Sie über das Falsche benötigen.
quelle
Ich hatte ein Problem damit und stellte dann fest, dass es eine dumme Auslassung war, von der ich annehme, dass sie für einige von Ihnen ein Fehler ist. Als ich das Argument eingegeben habe
Xcode (4.3.1)
, habe ich den führenden Bindestrich weggelassen. Ich hätte es nicht getan, wenn ich es über eine Befehlszeile eingegeben hätte, aber in der GUI hatte ich es weggelassen. Ich habe keinen Unterschied zwischen der Eingabe bei 2 oder einem Argument festgestellt (wie einige Beiträge vorgeschlagen hatten). Verwenden Sie also:-com.apple.CoreData.SQLDebug 1
und nicht einfach:
com.apple.CoreData.SQLDebug 1
Das hat bei mir sowohl im Simulator als auch im realen Gerät funktioniert
quelle
Beachten Sie, dass Sie verschiedene Ebenen des übergebenen Werts eingeben können. Welche bieten immer mehr Ausführlichkeit.
quelle