我想知道在一个类中导入 appDelegate 和在 appDelegate 中导入同一个类的后果。因为,我在我的应用程序中成功地做到了这一点,但建议不要这样做。尽管进行了很多搜索,但我找不到答案。
提前致谢。
我想知道在一个类中导入 appDelegate 和在 appDelegate 中导入同一个类的后果。因为,我在我的应用程序中成功地做到了这一点,但建议不要这样做。尽管进行了很多搜索,但我找不到答案。
提前致谢。
你可以这样做,但要小心你如何导入标题。这是推荐的方式:
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
文件中,您可以防止这种情况。