我有一个小的类层次结构,我希望子类成为其父类和所有相关子类的属性。本质上,
- 我有
AbstractClass
和GroupClass
的属性。 GroupClass
是抽象类
。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
...我在指出的错误位置得到了这个奇怪的“行位置 GroupingClass.h:3: 错误:找不到 'myAbstractClass' 的接口(interface)声明,'GroupingClass' 的父类(super class)
”。
我已经尝试了各种方法来让它发挥作用(是的,我知道上面是完全错误的),类别和协议(protocol)似乎是正确的方向,但现在这变得越来越不稳定,我真的只需要朝正确的方向推进。我认为我错过了一些非常基本的东西(坦率地说,我有点尴尬地问这个问题)。
我目前正在从 REALbasic 移植这个应用程序,这样的事情是轻而易举的;我只需将该属性添加为子类即可,它就起作用了。 Objective-C...没那么多。
非常感谢任何帮助,即使只是提示!
最佳答案
您应该能够在 header 中使用 @class 声明,并在实现文件中导入子类的 header 。
关于objective-c - 如何将子类声明为父类的属性以在相关子类中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977223/