Ich habe zwei Unterklassen, eine, die viel Anpassung hat, wir nennen es Foo, und eine andere Unterklasse, die nur 1 Methode überschrieben benötigt, und doesn ' Ich brauche keine zusätzlichen Variablen, wir nennen es Bar.Objective-C mehrere Klassendefinitionen in einer .h und .m
Bar wird eine der Variablen von Foo sein, damit keine 2 Dateien mehr arbeiten müssen (.m und .h für Bar) Ich möchte die Bar in Foo's .h und .m Dateien verbinden und implementieren .
Meine beste Leistung gibt mir mehrere Compilerfehler.
Die .h-Datei wie folgt aussieht:
#import <UIKit/UIKit.h>
@interface Foo : FooSuperClass {
Bar *barVariable;
}
@property (nonatomic, retain) Bar *barVariable;
-(void) fooMethod;
@end
@interface Bar : BarSuperClass {
}
@end
Die .m-Datei wie folgt aussieht:
#import "Foo.h"
@implementation Foo
@synthesize barVariable;
-(void) fooMethod{
//do foo related things
}
@end
@implementation Bar
- (void)barSuperClassMethodIWantToOverride{
}
@end
Mir ist klar, dass diese Art der Dinge in der Regel verpönt würde, aber ich halte es für angebracht ist in meiner Situation. Der erste Fehler, den ich bekomme, ist "Expectifier-Qualifier-Liste vor Bar".
Was habe ich falsch gemacht, ich bin mir ziemlich sicher, dass es möglich ist, mehrere Deklarationen/Definitionen in einer einzigen Datei zu haben.
Es ist oft besser, die Anweisung '@ class' zu verwenden. Was passiert zum Beispiel, wenn Sie eine Instanzvariable vom Typ 'Foo' in' Bar' deklariert haben? –