2016-08-24 1 views
0

J'ai créé une méthode dans le fichier catégorie. Je veux juste réutiliser ces méthodes dans mes contrôleurs de vue. J'ai donc importé ce fichier de catégorie dans les contrôleurs de vue et déclaré la méthode dans le fichier d'en-tête également. appeler comme ceci:Xcode - warning "Définition de la méthode introuvable". Méthode d'appel du fichier de catégorie

Catégorie Classe:

@interface UIViewController (headerView) 
-(UILabel *)someMethod; 

@implementation UIViewController (headerView) 
-(UILabel *)someMethod{ 
} 

HomeViewController:

@interface HomeViewController : UIViewController 
-(UILabel *)someMethod; 

@implementation HomeViewController 
[self someMethod]; 

Iam obtenir un message d'avertissement dans cette ligne:

@implementation HomeViewController 

Son fonctionnement. Mais je veux effacer cet avertissement. Comment puis-je le faire?

+0

Que voulez-vous dire par « la réutilisation ces méthodes à mon avis contrôleurs "? Les catégories ajoutent des méthodes aux classes existantes. Le seul problème avec l'appel des méthodes est de faire connaître leur définition à clang. On dirait que vous avez manqué une étape. Peut-être poster l'interface de catégorie et montrer comment vous l'importez. – Avi

+0

quel message d'avertissement obtenez-vous? – vaibhav

+0

Montrez tout votre code comment vous créez la catégorie et comment vous l'importez dans votre 'viewcontroller'! – Lion

Répondre

1

Si vous voulez vous dans la catégorie contrôleur de vue le faire quelque chose comme ça

Votre catégorie

@interface UIViewController (ExtendedMethods) 
- (void)someMethod; 
@end 

@implementation UIViewController (ExtendedMethods) 
- (void)someMethod { 
    NSLog(@"Some method"); 
} 
@end 

MyViewController.m

#import "MyViewController.h" 
#import "UIViewController+ExtendedMethods.h" 

@implementation MyViewController 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self someMethod]; 
} 
@end 
+0

oui. Exactement, j'ai fait comme ça. Mais obtenir un message d'avertissement. Comment effacer cela? – Balasubramanian

+0

Recevez-vous un avertissement sur cette ligne? - implémentation MyViewController – Balasubramanian

+0

Non, je n'ai aucun avertissement. Etes-vous sûr d'avoir someMethod dans la catégorie Fichier en-tête? Peut-être que vous l'avez mal orthographié? – Konstantin