2010-07-09 5 views

Répondre

6

Vous pouvez le faire, mais attention à la façon dont vous importez en-têtes. Ceci est la méthode recommandée:

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 

Comme vous pouvez le voir, vous voulez utiliser @class de déclarer les classes dans vos têtes, puis importer l'en-tête dans vos .m fichiers. Cela garantit que vous n'importez pas les choses dont vous n'avez pas besoin; Si vous avez importé l'en-tête du contrôleur de vue dans l'en-tête de votre délégué d'application, il est importé dans tout ce qui a importé l'en-tête de votre délégué d'application. En laissant toutes les importations aux fichiers .m, vous évitez cette situation.

+0

... Thanx Exactement ce que je cherchais .. Est-ce le cas même avec toute importation de classe dans les autres classes et vice-versa? – neha

+0

Oui. Vous ne voulez inclure d'autres fichiers d'en-tête dans les fichiers d'en-tête que lorsque c'est absolument nécessaire. Cela aidera à réduire la taille des fichiers (les choses inutiles ne seront pas compilées dans chaque fichier) et améliorera les performances, tout en évitant les erreurs. –

Questions connexes