Objective-c: Wie kann ich Override anfordern und nicht super aufrufen?

9

Ich denke, das wird durch das Schreiben eines @ -Protokolls gelöst.

Aber ich bin hungrig nach Wissen. Gibt es ein Flag oder eine andere Möglichkeit, dass Unterklassen spezifische Methoden überschreiben und nicht super aufrufen? Wie das Gegenteil von NS_REQUIRES_SUPER / objc_requires_super?

    
hfossli 10.03.2014, 10:13
quelle

3 Antworten

1

Ich mache das im Code, der keine Flags verwendet.
- Ich füge eine Behauptung in die Methode der Superklasse ein, die überschrieben werden muss, falls diese Methode aufgerufen wird

Hier habe ich eine Klasse, die eine Methode fetchUserData hat, die von der Kindklasse

überschrieben werden sollte %Vor%     
Basheer_CAD 10.03.2014, 10:35
quelle
1

Wenn ich das richtig verstehe, fragen Sie im Grunde, wie man eine abstrakte Klasse erstellt ... und Unterklassen zur Implementierung von Methoden zwingt.

Auschecken: Erstellen einer abstrakten Klasse in Objective-C

Kurz gesagt, lassen Sie die Methode eine Ausnahme auslösen.

    
user1040049 10.03.2014 17:02
quelle
1

Es gibt einige Dinge hier , die nützlich sein könnten .

Speziell subclassResponsibility:

EDIT: Guter Punkt in den Kommentaren - GNUStep! = Foundation. Mit anderen Worten, die Methoden auf der Seite, mit der ich verlinkt bin, sollten mit Vorsicht verwendet werden. Allerdings habe ich persönlich subclassResponsibility: verwendet und es funktioniert.

    
shmim 10.03.2014 16:55
quelle

Tags und Links