2013-02-13 2 views
-1

Comment appeler la méthode de classe de catégorie d'une autre classecomment appeler méthode de classe de catégorie d'une autre classe

 @interface Event() 
     { 
     NSDictionary *e_Dict; 
     NSString *e_String; 
     } 

    -(NSDictionary *)CheckEvent:(NSString *)string; 
     @end 

     @implementation Event 

    -(NSDictionary *)CheckEvent:(NSString *)string{ 
     ...... 
.....................  
    return t_Dict; 

     } 

J'ai créé une nouvelle classe qui est UnitTesting

importer la #import classe « Event.h »

-(void)testCheckEventNilDictionary { 

Event *evt = [[Event alloc]init]; 
NSDictionary *t_Dictionary; 

t_Dictionary = [evt CheckEvent:@"string"]; 


} 

Mais pour moi, je suis incapable d'inclure la méthode CheckEvent

[evt CheckEvent:@""] 

S'il vous plaît quelqu'un peut-il me dire ce que j'ai fait de mal?

@All merci à l'avance

+0

Quel est le message d'erreur reçu? – AppleDelegate

+0

vous avez une erreur? –

+0

1) vous devez partager l'erreur de compilation ou d'avertissement ou l'erreur d'exécution et spécifier ce qu'il est 2) Vous devriez lire sur les conventions de nommage Objective-C, essayer de lire votre code est difficile en raison du rejet de la communauté normes. Ces deux choses augmenteront la capacité des autres à vous aider à répondre à votre question. –

Répondre

0

Peut-être que vous devez déclarer la méthode dans le fichier d'en-tête de categoryClass

i.e. à categoryClass.h déclarer

-(NSDictionary *)CheckEvent:(NSString *)string; 
+0

Non son non déclaré dans le .h Mais il a déclaré dans CategoryClass() ie, @interface Event() à ma connaissance, il a besoin d'accéder à cette méthode de méthode qui sont déclarés dans CategoryClass() ie, Event() – kiran

+0

Message d'erreur: Non visible @interface for Event déclare le sélecteur CheckEvent., – kiran

+1

OK.En tant que je vois, vous avez créé une extension et non une catégorie.Si vous l'avez défini Dans l'interface du fichier .m, aucune autre classe ne peut y accéder. – AppleDelegate

0

Selon ma connaissance.

Si vous écrivez la catégorie dans le fichier .m et que vous importez le fichier .h, vous ne pouvez pas y accéder à partir d'autres classes.

Comme solution:

  • Vous devez déclarer votre catégorie dans le fichier .h.
  • Dans votre classe importer votre fichier .m (Ce n'est pas une bonne chose)
Questions connexes