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

07-24 14:18