Wie können in Objective C Unterklassen statische Klassenvariable erben, die den Wert der Variablen für alle untergeordneten Elemente nicht ändern?Wie können in Objective C Unterklassen statische Klassenvariable erben, die den Wert der Variablen für alle untergeordneten Elemente nicht ändern?
Lets sagen, ich habe abstrakte Klasse Auto. Es hat eine statische BOOL, "isSportsCar", die wir auf Null setzen.
Dann in der InS Methode von SportsCar der Unterklasse setzen wir isSportsCar = YES.
Mein Ziel war, dass alle Instanzen von SportsCar "YES" von der Methode "isSportsCar" zurückgeben (die den Wert des statischen BOOLs zurückgibt).
Das Problem ist, dass alle anderen Unterklassen von Auto, wie LuxuryCar und Limousine, jetzt alle JA von "isSportsCar" zurückgeben.
Ich möchte vermeiden, die IsSportsCar-Methoden in allen Unterklassen zu deklarieren.
Aber wie kann ich eine Klassenvariable machen, in der jede Unterklasse eine eigene Instanz dieser Variable hat?
Nur um Ihre Frage ein wenig klarer zu machen, können Sie ein Code-Snippet bereitstellen, das das * gewünschte Verhalten * zeigt? Wie ein Komponententest, der das Verhalten der Implementierung, nach der Sie in Ihrer Frage fragen, überprüft? –
Objective-C-Klassen haben (und können nicht) Klassenvariablen, daher sollte diese Variable wahrscheinlich eine Instanzvariable sein, die in der 'init'-Methode festgelegt ist. – mipadi
* Ich möchte vermeiden, dass die isSportsCar-Methoden in allen Unterklassen deklariert werden müssen. * Wahrscheinlich möchten Sie es vermeiden, eine Instanzmethode für alle Unterklassen zu definieren, weil Sie sie an der Basisklasse deklarieren können. Warum möchten Sie es jedoch vermeiden? Was macht das schlechter, als eine Variable für alle Unterklassen zu setzen? –