Von innerhalb von xcode gibt gdb Folgendes:
%Vor%So weit so gut ... Aber:
%Vor% Im Interesse der Klarheit, was ich wirklich tun möchte, senden Sie eine Nachricht an super
beim Debuggen. Zum Beispiel möchte ich so etwas tun:
Aber wie referenziere ich super
aus der gdb-Umgebung? Danke!
Etwas, das Sie beachten sollten, ist super == self
. Es ist derselbe Objektzeiger, aber das Schlüsselwort super
teilt dem Nachrichtenabfertigungscode mit, nach einer Implementierung zu suchen, die eine Ebene zurück in der Klassenhierarchie ist.
Hey, wir waren rede gerade darüber! Das Wort super
hat keine Auswirkungen, außer als Empfänger einer Nachricht, also [super doSomething]
. Es ist nur eine Anmerkung für den Compiler, dass es nach der Implementierung einer Methode in der Oberklasse und nicht nach dem aktuellen Klassenobjekt suchen sollte.
Wenn Sie das tatsächliche Superklassenobjekt eines Objekts verwenden möchten, verwenden Sie das Protokoll NSObject
superclass
Methode : [self superclass]
.
Ich weiß nicht, wie ich genau das machen soll, was Sie wollen. Wie wäre es mit einem Debugger-Hook? Setzen Sie dies in Ihre Klasse:
%Vor% und dann können Sie [self callSupersDoSomething]
vom Debugger aufrufen.
Tags und Links objective-c xcode cocoa xcode4 gdb