Ich bin völlig ratlos. Ich habe seit über einem Jahr debuggen und hatte nur dieses Problem, wenn die Build-Konfiguration auf Release festgelegt wurde. Ich habe die Build-Konfiguration auf Debug gesetzt und ich habe überprüft, um sicher zu sein, dass ich an den richtigen Prozess angehängt habe und dennoch kann ich die Werte nicht sehen, während ich den Code durchlaufe. Ist jemand anderes in dieses Problem geraten?
Hier ist ein Screenshot:
Der Wert wird zurückgegeben, aber ich kann die Werte von ALLES in dieser Methode oder einer der anderen Methoden nicht sehen, und ich kann nicht herausfinden, warum.
Danke für Hinweise, die Sie mir geben können.
============================ UPDATE ================ ===================
Ich habe versucht, den Wert auszudrucken und dies ist die Ausgabe, die ich erhalte:
Beachten Sie jedoch, dass der Wert in der Variablenansicht für das Ergebnis korrekt ist, obwohl ich ihn nicht ausdrucken kann. Aber die anderen Werte, wie filePath sollten nicht Null sein.
Das ist so komisch.
============================ UPDATE ================ ===================
Ich habe den Breakpoint auf die Return-Anweisung gesetzt und immer noch kein Glück:
Diesmal sehe ich keinen Wert für das Ergebnis:
Ich hatte das gleiche Problem, beim Mauszeiger über den Abschnitt für jede Variable, die keinen Wert enthielt, aber während NSLog für diese Variablen den korrekten Wert druckte.
Jetzt ist es behoben. Probieren Sie dies
aus Gehen Sie zum Produktmenü & gt; Schema & gt; Editierschema oder + & lt;
Wechseln Sie in Run zur Registerkarte Info, und ändern Sie die Build-Konfiguration in "debug".
Hoffe, es wird funktionieren.
@Lucy, im Idealfall sollten Sie beim Debuggen nicht im Release-Profil laufen, Release ist als App-Distribution-Profil mit einer kleinen Paketgröße und kleinen / keinen Debug-Symbolen gedacht.
Wenn Sie jedoch bei Release debuggen müssen (z. B. aufgrund von "Environment", aus Datengründen), stellen Sie sicher, dass die Optimierungsstufe für "Release" auf "None" gesetzt ist.
Sie können die obige Konfiguration über:
erreichen1) Projektweite -Einstellungen - wirkt sich auf alle Ziele aus
2) Zielspezifische -Einstellung - betrifft nur ein einzelnes Ziel
Vergessen Sie nicht, dies vor der App Store-Verteilung zurückzuschalten. Lower Optimization erzeugt ein größeres ipk, was die Downloadzeit Ihrer Nutzer erhöht - auch das mögliche dSYM generiert.
Für den Kontext sind Debug-, Adhoc- oder Release-Profile reine Id-Buildkonfigurationen, die XCode mitliefert. XCode startet Projekte mit einem Debug-Profil ohne Optimierung (und verschiedenen anderen vordefinierten Konfigurationen für Entwicklung und Debugging), so dass das Laden von Symbolen durch den Interpreter möglich ist - Sie können dies beliebig ändern.
Theoretisch kann ein Release-Erstellungsprofil erstellt werden, das mit Debug identisch ist.
Ich sehe einen Teil Ihres Problems. Beachten Sie, wie self
ist nil
?
Das bedeutet, dass Sie sich in einem Methodenaufruf für ein aufgehobenes Objekt befinden. Aktivieren Sie NSZombies
zum Debuggen.
siehe diese SO-Antwort , wie Sie es tun können Aktivieren Sie NSZombie
Da zulässig ist, Nachrichten an nil
zu senden, C, würde ich vermuten, dass das Objekt als Nebeneffekt der Aufruf von doesLicenseFileExist
oder von einem anderen Thread freigegeben wird.
Es kann hilfreich sein, einen Haltepunkt in IDLicenseCommand
s -dealloc
method einzufügen.
Ich hatte dieses Problem und drehte "Link-Time Optimization" von "Incremental" auf "No" und löste das Debugging-Problem.
Tags und Links objective-c xcode