iosobjective-cimport

iOS: What can cause the Xcode compiler to throw errors when I include my AppDelegate.h into another header file?


I am trying to #import my "AppDelegate.h" into another header file of the same project in order to access methods of the AppDelegate of my iOS project.

So, my header file looks something like this: #import

#import "DataProvider.h"
#import "MyAppDelegate.h"

@interface MyViewController : UIViewController <UITextFieldDelegate, UIAlertViewDelegate> {
...
}

and I want to use my AppDelegate like this:

MyAppDelegate* appDelegate = (MyAppDelegate*)[UIApplication sharedApplication].delegate;
[appDelegate doSomething];

However, as soon as I #import "MyAppDelegate.h", the compiler throws a lot of (unrelated) errors, like

Cannot find interface declaration for 'MyOtherViewController', superclass of 'MyOtherViewController2' 

The thing is: I can include my AppDelegate just fine in other headers. And I cannot figure out what the difference might be. Please help me figure out what could cause this! Thanks a lot!

PS: This happens with GCC as well as the new LLVM.


Solution

  • Move the #import into the .m file. If you need the MyAppDelegate symbol in your .h, use @class MyAppDelegate; instead.