我正在构建一个自定义Xcode框架,我有一个名为AXController
的类,它有一个名为showActivationWindow
的类方法。 showActivationWindow
使用AXWindowController
初始化并显示一个窗口,NSWindowController
是AXWindowController
的子类。然后,activate
在显示的窗口中按下按钮,调用AXController
AXWindowController.h
中的类方法。
我在AXController.h
中添加了AXController.h
,并在AXWindowController.h
中添加了{{1}},因此每个人都可以访问其他方法,但这会引发很多Xcode警告。它似乎也是一个非常不优雅的解决方案。
解决此问题的正确方法是什么?
答案 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.h
和B.h
!但是如果不使用垃圾回收,请注意不要进行保留循环。