我正在尝试将我的“AppDelegate.h”导入到同一项目的另一个头文件中,以便访问我的 iOS 项目的 AppDelegate 的方法。
所以,我的头文件看起来像这样: #导入
#import "DataProvider.h"
#import "MyAppDelegate.h"
@interface MyViewController : UIViewController <UITextFieldDelegate, UIAlertViewDelegate> {
...
}
我想像这样使用我的AppDelegate:
MyAppDelegate* appDelegate = (MyAppDelegate*)[UIApplication sharedApplication].delegate;
[appDelegate doSomething];
但是,一旦我#import“MyAppDelegate.h”,编译器就会抛出很多(不相关的)错误,例如
Cannot find interface declaration for 'MyOtherViewController', superclass of 'MyOtherViewController2'
问题是:我可以将我的 AppDelegate 很好地包含在其他标头中。我无法弄清楚有什么区别。请帮我看看是什么原因造成的!非常感谢!
PS:GCC 以及新的 LLVM 都会发生这种情况。
将 #import 移至 .m 文件中。 如果您需要 .h 中的 MyAppDelegate 符号,请使用
@class MyAppDelegate;
代替。