Вы можете сделать это, но будьте осторожны с тем, как вы импортируете заголовки.Это рекомендуемый способ:
AppDelegate.h :
// Import headers here
@class MyViewController;
@interface AppDelegate : NSObject <UIApplicationDelegate> {
MyViewController *viewController;
}
- (void)someMethod;
@end
AppDelegate.m :
#import "AppDelegate.h"
#import "MyViewController.h"
@implementation AppDelegate
//Your code here
@end
MyViewController.h :
// Import headers here
@class AppDelegate;
@interface MyViewController : UIViewController {
AppDelegate *appDelegate;
}
@end
MyViewController.m :
#import "MyViewController.h"
#import "AppDelegate.h"
@implementation MyViewController
// Your code here
@end
Как видите, вы хотите использовать @class
объявить классы в ваших заголовках, а затем импортировать заголовок в ваших .m
файлах.Это гарантирует, что вы не импортируете вещи, которые вам не нужны;если вы импортировали заголовок контроллера представления в заголовок делегата приложения, он будет импортирован во все, что импортировало заголовок делегата приложения.Оставив все импортированные файлы .m
, вы предотвратите эту ситуацию.