objective-c - 如何将子类声明为父类的属性以在相关子类中使用?

标签 objective-c cocoa

我有一个小的类层次结构,我希望子类成为其父类和所有相关子类的属性。本质上,

  • 我有 AbstractClassGroupClass 的属性。
  • GroupClass抽象类
  • UsableObjectClassAbstractClass 及其用途 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/

相关文章:

objective-c - 正确使用窗口

objective-c - 为单个 KVC 更改接收 2 个 KVO 通知

ios - ARC双向关系

objective-c - 无法更改 UILabel 文本颜色

objective-c - 为什么跟踪区域不受尊重

php - cocoa URL API : how can I return an error from the server *and* still download the data requested?

cocoa - 从 NSSegmentedControl 到标签

ios - UIView 动画立即完成

objective-c - 使用 NSDate 从字符串中查找日期

iphone - UIControlEvents 和子类化 UIControl