我试图将“ 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;
。