Zeigen Sie den Objekt- / Eigenschaftsstatus in Xcode während des Debuggens an

8

Ich bin also neu bei Xcode, arbeite an einem iOS-Projekt und habe eine Menge Zeit mit dem grundlegendsten Debugging. Insbesondere muss ich in der Lage sein, den Zustand von Objekten zu sehen, während ich durch den Code gehe (das ist nicht verrückt, oder?), Aber ich kann nicht für das Leben von mir herausfinden, wie man das in Xcode macht.

Immer wenn ich es versuche, scheint es mir am weitesten entfernt zu sein, eine Speicheradresse zu haben, die nicht erweitert werden kann, um ihre objektiven Inhalte zu zeigen. Ich kann auch keine Möglichkeit finden, den Zeiger in der Debug-Konsole manuell zu dereferenzieren, um den Zustand dieses Objekts anzuzeigen.

Hier versuche ich den Inhalt des store.storeHours -Arrays zu sehen, ohne Glück. Tatsächlich sagt mir die Ansicht links, dass es 0 Objekte im Array gibt, und zeige nichts an, wenn ich versuche, sie zu erweitern, aber wenn ich po store.storeHours betrachte, zeigt die Konsole 7 Objekte an, wenn auch nutzlos als Speicheradressen dargestellt / p>

Bitte sag mir, ich bin nicht verrückt und ich verpasse gerade etwas!

Update: So werden die Dinge noch seltsamer! Wenn ich die variable Anzeige plötzlich auf "Lokal" anstelle von "Auto" umstelle, wird self.store.storeHours vollständig navigierbar! Ich frage mich, ob es vielleicht einen Fehler gab, auf die richtige "storeHours" -Instanz zuzugreifen oder so etwas, weil es 7 Objekte im Array eindeutig identifiziert, wenn ich es jetzt ansehe! Ganz zu schweigen von den Objekten sind erweiterbar, wie ich ursprünglich gehofft hatte.

    
devios1 27.02.2013, 00:29
quelle

3 Antworten

8

Die Instanzen stellen diese Informationen tatsächlich selbst zur Verfügung. Sie müssen die description Methode, die von NSObject geerbt wird, für Ihre benutzerdefinierten Klassen, damit sie sich selbst als etwas anderes als eine Speicheradresse drucken können (was ist NSObject Implementierung tut es).

Ich habe keine Ahnung, welche Eigenschaften Ihre Hours -Klasse hat, aber dies ist so einfach wie etwa:

%Vor%

Die Methode muss nur einen NSString zurückgeben, der alle Informationen enthält, von denen Sie glauben, dass sie bei der Untersuchung des Objekts wichtig sind.

Dies ist auch, wie Klassen sich darstellen, wenn Sie den Formatbezeichner %@ in NSLog() verwenden.

    
Josh Caswell 27.02.2013, 00:34
quelle
1

In Ihrem Beispiel ist store.storeHours ein leeres NSArray. Du kannst also natürlich nicht hineinsehen.

Um mehr Klarheit im Debugger zu schaffen, versuchen Sie, eine Methode (von NSObject geerbt) hinzuzufügen

%Vor%

an Ihre Objekte wie Hours , die Ihnen mehr über ihren Inhalt erzählen. Siehe auch debugDescription .

    
Mark Bernstein 27.02.2013 00:35
quelle
0

implementieren

%Vor%     
Saran 27.02.2013 00:35
quelle

Tags und Links