0

我想知道在一个类中导入 appDelegate 和在 appDelegate 中导入同一个类的后果。因为,我在我的应用程序中成功地做到了这一点,但建议不要这样做。尽管进行了很多搜索,但我找不到答案。

提前致谢。

4

1 回答 1

6

你可以这样做,但要小心你如何导入标题。这是推荐的方式:

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文件中,您可以防止这种情况。

于 2010-07-09T14:01:38.047 回答