Verwenden Sie Super in einer Objective C-Kategorie?

Ich möchte eine Methode in einer Objective C-Klasse überschreiben, für die ich nicht die Quelle habe.

Ich habe es mir angeschaut und es scheint, als ob Categories mir dies erlauben sollte, aber ich möchte das Ergebnis der alten Methode in meiner neuen Methode verwenden und super verwenden, um das Ergebnis der alten Methoden zu erhalten.

Immer wenn ich das versuche, wird meine Methode aufgerufen, aber "super" ist gleich Null ... Irgendeine Idee warum? Ich entwickle mein iPhone mit dem XCode 2.2 SDK. Ich arbeite definitiv mit einer Instanz einer Klasse, und die Methode der Klasse ist eine Instanzmethode.

@implementation SampleClass (filePathResolver)
-(NSString*) fullPathFromRelativePath:(NSString*) relPath
{
    NSString *result = [super fullPathFromRelativePath: relPath];

  ... do some stuff with the old result

    return result;
}

Hinweis und Klarstellung: Nach dem, was ich in den Apple-Dokumenten sehen kann, scheint es mir, dass dies erlaubt sein sollte?

Kategorien Dokumente bei developer.apple.com: Wenn eine Kategorie eine geerbte Methode überschreibt, kann die Methode in der Kategorie wie üblich die geerbte Implementierung über eine Nachricht an super aufrufen. Wenn eine Kategorie jedoch eine Methode überschreibt, die bereits in der Klasse der Kategorie vorhanden war, kann die ursprüngliche Implementierung nicht aufgerufen werden.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage