Arbeiten an einem Mac OS Projekt (dh nicht iPhone) erfordert 10.6 und ist 64 Bit, ermöglicht es mir, Eigenschaften zu verwenden, um beide Accessor-Methoden und Instanzvariablen in der Header-Datei zu generieren. aber während des Debugging sehe ich nicht, wie man die Eigenschaftswerte des Objekts anschaut, nachdem sie ausgefüllt wurden. Gibt es eine Build-Einstellung, die aktiviert werden muss?
Wenn ich die Instanzvariablen eines Objekts deklariere (zwischen {} in der Kopfzeile), dann kann ich diese Werte (wenn sie benutzt werden) während des Debugs entweder im Debug-Fenster selbst sehen, oder indem ich den Cursor-Mauszeiger über den Mauszeiger halte markierter Linientrick im Editor während einer Pause, oder indem man cli in gdb wie zum Beispiel 'p * object' ausführt.
alter Weg:
%Vor%neuer Weg:
%Vor%In dieser neuen 10.6 erforderlichen 64-Bit-Idee (die mir einfacher erscheint) zeigt keine dieser Debug-Methoden die Werte des Objekts an. Ich denke, ich muss etwas ausgeschaltet haben, denn diese neuere Idee scheint nicht besser.
gdb Ergebnisse für alten Weg:
%Vor%gdb Ergebnisse für neuen Weg:
%Vor%Also schauen Sie sich die Dokumente für objective-c 2.0 an:
beschreibt, worauf ich Bezug nehme (die Synthese von Instanzvariablen in der 'modernen' Laufzeit), aber was nirgendwo anders gesagt wird, ist, dass die Werte während des Debuggens nicht verfügbar sind.
Ich habe eine Seite SO mit relevanten Informationen gefunden, die jedoch nicht auf diesen Effekt ausgerichtet ist: Verwenden von Instanzvariablen mit der Modern Runtime
Was habe ich vermisst?
Ich nehme an, dass Sie @synthesizing
diese Variablen sind?
Sie benötigen möglicherweise auch { }
in der Schnittstelle, damit der Compiler weiß, wohin er ihn setzen soll.
Ich würde diese Art von Syntax vermeiden ... vor allem, wenn Sie die Eigenschaften selbst definieren.
Sehen Sie sich auch <objc/runtime.h>
an und prüfen Sie, ob Sie eine Liste von Ivars für die Klasse drucken können. Ich benutze immer die folgende Zeit für das Debuggen von Methoden oder Klassen von APIs, die keine Dokumentation haben.
Ich hatte das gleiche Problem mit synthetisierten Ivars. Meine Lösung war, in XCode 3.25 zum LLVM 1.6 Compiler zu wechseln. Dies brachte Debugger Tooltips (am hilfreichsten für mich), aber das Variablenfenster zeigt immer noch nicht die Ivars.
Tags und Links objective-c xcode cocoa xcode3.2