2010-08-08 4 views
2

J'ai quelques méthodes pour l'initialisation de différentes choses dans mon implémentation de classe. Toutefois, lorsque j'appelle ces méthodes en utilisant [self 'methodName'], le compilateur Xcode me donne un avertissement dont je ne pouvais pas me débarrasser.Avertissement Xcode: "Peut ne pas répondre à"

'className' ne peut pas répondre à 'methodName'

Par exemple,

avertissement: 'NextJackpotViewController' ne peut pas répondre à -initActivityIndicator »

- (void)viewDidLoad { 
    [self initActivityIndicator]; 
    [self addRefreshButton]; 
    [self updateUI]; 

    [super viewDidLoad]; 
} 

Tout ce qui pourrait être fait pour se débarrasser de cela?

Répondre

4

Assurez-vous que la méthode est définie dans votre fichier d'en-tête. Dans ce cas:

// NextJackpotViewController.h 
- (void)initActivityIndicator; 
+0

Ou vous pouvez vous assurer qu'il est défini avant la méthode qui l'appelle dans le même fichier (plus haut dans votre fichier .m). –

5

Il existe 3 façons de procéder. Le premier est de simplement mettre la déclaration de méthode dans votre fichier d'en-tête comme l'a dit Matt.

La seconde est de créer des méthodes privées, vous pouvez le faire en mettant le code suivant en haut de votre contrôleur

@interface NextJackportViewController (PrivateMethods) 
- (void)initActivityIndicator; 
@end

La troisième voie est de définir la méthode avant de l'appeler.

+1

Notez que le mot 'PrivateMethods' n'est pas un mot-clé ou quoi que ce soit de spécial, vous pouvez simplement le remplacer par' OtherStuff' (ne le dites pas) – cobbal

Questions connexes