J'ai une petite hiérarchie de classes où j'aimerais que la classe enfant soit une propriété de sa classe parente et de toutes les sous-classes associées. Essentiellement,Comment déclarer une classe enfant en tant que propriété d'une classe parent à utiliser dans des classes enfants apparentées?
- J'ai
AbstractClass
avec une propriété deGroupClass
. GroupClass
est un enfant deAbstractClass
.UsableObjectClass
est un enfant deAbstractClass
et utiliseGroupClass
.
Si je fais ce qui suit ...
#import <Cocoa/Cocoa.h>
#import "GroupingClass.h" // I've bounced this between @class as well.
@interface myAbstractClass : NSObject {
GroupingClass* parentGroup;
}
@property (readwrite, assign) GroupingClass* parentGroup;
@end
#import "myAbstractClass.h" // ERROR LOCATION
@implementation myAbstractClass
@synthesize parentGroup;
@end
#import <Cocoa/Cocoa.h>
@interface GroupingClass : myAbstractClass {
}
@end
#import <Cocoa/Cocoa.h> // ERROR LOCATION IN ALL CHILD CLASSES OF AbstractClass
@interface GroupingClass : myAbstractClass {
}
@end
... Je reçois ce génial "Line Location GroupingClass.h:3: error: cannot find interface declaration for 'myAbstractClass', superclass of 'GroupingClass'
" aux emplacements d'erreur notés. J'ai essayé plusieurs façons de faire fonctionner cela (oui, je sais que tout ceci est totalement faux), Catégories et Protocoles semble être la bonne direction, mais cela ne fait que flancher maintenant, et je viens juste besoin d'une poussée dans la bonne direction. Je pense qu'il me manque quelque chose de fondamentalement fondamental (franchement, je suis un peu gêné de poser cette question).
Je suis actuellement en train de porter cette application de REALbasic et quelque chose comme ça était un jeu d'enfant; Je pourrais juste ajouter la propriété en tant que classe d'enfant et cela a juste fonctionné. Objective-C ... pas tellement.
Toute aide, même juste un indice, est grandement appréciée!
C'était le peu qui me manquait. Merci! –