Kann "self" nicht in Objective-C Beschreibung Methode enthalten?

8

Ich habe eine sehr direkte Klasse mit Eigenschaften vom Typ NSString. Darin habe ich eine triviale Implementierung der Beschreibungsmethode geschrieben. Ich habe festgestellt, dass jedes Mal, wenn ich versuche, "Selbst" in die Beschreibung aufzunehmen, meine iPhone App abstürzt. Ein Beispiel ist etwas wie das Folgende:

%Vor%

Sobald ich den ersten Parameter in die Formatzeichenfolge self lösche, funktioniert es wie erwartet.

    
Coocoo4Cocoa 23.05.2009, 07:05
quelle

3 Antworten

30

Verwenden Sie %p für self , dann wird die Adresse von self angezeigt. Wenn Sie %@ verwenden, wird description auf self aufgerufen, wodurch eine unendliche Rekursion erstellt wird.

    
dreamlax 23.05.2009, 07:18
quelle
12

Sie können [super description] anstelle von self verwenden, um die unendliche Rekursion zu vermeiden:

%Vor%     
briankc 07.06.2009 01:56
quelle
6

Sie erkennen, dass sich eine unendliche Rekursion einstellt.

Ihre description Implementierung ruft sich implizit selbst auf, wenn Sie self übergeben, die sich dann selbst aufruft usw.

Ihr Absturz ist meistens wahrscheinlich, weil der Stack-Speicherplatz knapp wird ... ein "Stackoverflow", wenn Sie so wollen. Anpassung unter Berücksichtigung der Website: -)

    
freespace 23.05.2009 07:10
quelle