/ / Konsekwencja zaimportowania appDelegate w klasie i tej samej klasy w appDelegate - iphone, cocoa-touch, header, uiapplicationdelegate

Konsekwencje importowania appDelegate w klasie i tej samej klasie w appDelegate - iphone, cocoa-touch, header, uiapplicationdelegate

Chcę poznać konsekwencje importowaniaappDelegate w klasie i ta sama klasa w appDelegate. Ponieważ pomyślnie robię to w mojej aplikacji, ale zaleca się, aby tego nie robić. Nie mogłem znaleźć odpowiedzi pomimo wielu poszukiwań.

Z góry dziękuję.

Odpowiedzi:

6 dla odpowiedzi № 1

Możesz to zrobić, ale zachowaj ostrożność podczas importowania nagłówków. To jest zalecany sposób:

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

Jak widać, chcesz użyć @class aby zadeklarować klasy w swoich nagłówkach, a następnie zaimportuj nagłówek do pliku .m akta.Gwarantuje to, że nie importujesz rzeczy, których nie potrzebujesz; jeśli zaimportowałeś nagłówek kontrolera widoku w nagłówku delegata aplikacji, zostanie zaimportowany do wszystkiego, co zaimportowało nagłówek delegata aplikacji. Pozostawiając wszystkie importy do .m plików, zapobiegniesz tej sytuacji.