У меня есть небольшая иерархия классов, в которой я хотел бы, чтобы дочерний класс был свойством его родительского класса и всех связанных подклассов. По сути,
- У меня есть
AbstractClass
с
свойство GroupClass
.
GroupClass
является ребенком
AbstractClass
.
UsableObjectClass
является ребенком
AbstractClass
и использует
GroupClass
.
Если я сделаю следующее ...
#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
... Я получаю этот фанк "Line Location GroupingClass.h:3: error: cannot find interface declaration for 'myAbstractClass', superclass of 'GroupingClass'
" в отмеченных местах ошибок.
Я пробовал разные способы заставить это работать (да, я знаю, что вышеупомянутое абсолютно неправильно), Категории и Протоколы, кажется, правильное направление, но сейчас это становится все менее популярным, и мне действительно просто нужно толчок в правильном направлении. Я думаю, что упускаю что-то чрезвычайно фундаментальное (честно говоря, мне немного стыдно задавать этот вопрос).
В настоящее время я портирую это приложение с REALbasic, и что-то вроде этого было легким; Я мог бы просто добавить свойство в качестве дочернего класса, и это просто сработало. Объектив-С ... не так уж и много.
Любая помощь, даже просто подсказка, очень ценится!