在Xcode框架中构造类的正确方法

时间:2009-12-29 10:17:56

标签: objective-c xcode class frameworks controller

我正在构建一个自定义Xcode框架,我有一个名为AXController的类,它有一个名为showActivationWindow的类方法。 showActivationWindow使用AXWindowController初始化并显示一个窗口,NSWindowControllerAXWindowController的子类。然后,activate在显示的窗口中按下按钮,调用AXController AXWindowController.h中的类方法。

我在AXController.h中添加了AXController.h,并在AXWindowController.h中添加了{{1}},因此每个人都可以访问其他方法,但这会引发很多Xcode警告。它似乎也是一个非常不优雅的解决方案。

解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

递归导入头文件不是一个好主意。有一个指令@class (link to Apple doc),它告诉我们有一个这样命名的类。在实践中,用法类似于A.h

@class B;
@interface A:NSObject {
   B* anInstanceOfB;
} 
...
@end

B.h

#import "A.h"
@interface B:NSObject {
  A* anInstanceOfA;
}
...
@end

然后,您可以从.m文件中导入A.hB.h!但是如果不使用垃圾回收,请注意不要进行保留循环。