2009-09-22 10 views
0

J'ai un avertissement et je ne sais pas comment le faire disparaître.initwithint avertissement, aucune méthode trouvée?

Dans mon .h je ... ce

-(void)restartTimer; 

Alors le dans mon .m j'ai ...

-(void)restartTimer{ 
TimerViewController *TimerView = [[TimerViewController alloc] 
    initWithInt:hStart 
    number:mStart]; 

Je reçois cette erreur:

Attention: non '-initWithInt: nombre.' méthode trouvée.

Je suis sûr que c'est très simple, le code fonctionne toujours. Si quelqu'un peut suggérer des moyens de le résoudre, ce serait génial. Merci

+0

Ne pas être grossier ou quoi que ce soit, mais s'il vous plaît essayer de noter que la langue que vous utilisez dans les balises, le titre ou le corps de votre question. C'est assez facile de voir ici que c'est une question d'objectif-c mais ce n'est peut-être pas la prochaine fois. Encore une fois ne pas essayer d'être grossier juste offrant des conseils utiles! :) – RCIX

+0

sûr que je suis un peu nouveau à ceci: -s – user157733

Répondre

1
-(void)restartTimer{ 
    TimerViewController *TimerView = [[TimerViewController alloc] 
     initWithInt:hStart 
      number:mStart]; 
... 
} 

(1) TimerView devrait être timerView, selon les conventions de nommage Objective-C

(2) Votre TimerViewController.h devrait avoir un quelque chose comme déclaration:

- (TimerViewController *) initWithInt: (NSInteger) hStart number: (NSInteger) mStart; 

(en supposant que vous voulez que hStart et mStart soient des entiers).

(3) Vous devez importer TimerViewController.h dans le fichier d'implémentation dans lequel le code ci-dessus apparaît, directement ou indirectement (car il est importé par autre chose, potentiellement le fichier PCH du projet).

(4) Un meilleur nom pour la méthode pourrait être:

- (TimerViewController *) initWithHStart: (NSInteger) hStart mStart: (NSInteger) mStart; 

Ou quelque chose de similaire - à savoir, la méthode doit décrire la nature des arguments qu'il faut.

1

Cela signifie que le compilateur ne peut pas trouver une telle méthode lors de la compilation. Il suffit d'inclure l'en-tête de TimerViewController dans votre fichier .m.

+0

En faisant #import "TimerViewController.h"? J'ai déjà cette – user157733

+0

êtes-vous sûr que cette méthode exacte existe dans votre implémentation de TimerViewController? –

-1

Le code fonctionne toujours car Objective-C permet d'envoyer des messages à nil objets ainsi *TimerView est nil.

+0

TimerView n'est pas réellement impliqué au moment où la méthode est invoquée. – bbum

1

Importer l'en-tête fichier mon .h va résoudre ce problème

Questions connexes