2010-04-02 7 views
1

Mon programme ressemble à ceci:Comment appeler une méthode dans la méthode init?

-(id)init 
{ 
    if ((self = [super init])) 
    { 
     //TargetWithActions *targetActions= [[TargetWithActions alloc] init]; 
     [self countDownSpeed123]; 
    } 
    return self; 
} 
-(void)countDownSpeed123 
{ 
    countDownSpeed = 5.0f; 
} 
@end 

avertissement: « TargetWithActions » ne peut pas répondre à « -countDownSpeed123 »

j'obtiens l'avertissement de cette façon. Où je me trompe dans mon programme. S'il vous plaît, expliquez ? Merci.

Si j'ai besoin d'utiliser la valeur countDownSpeed ​​dans une autre classe, comment puis-je conserver la valeur? Comment puis-je utiliser dans l'autre classe? Je pense que retenir fonctionne pour les types de pointeurs.

EDIT:

Désolé pour mon mauvais codage et la négligence. J'ai fait des erreurs dans mon programme qui sont très directes.

Merci d'avoir répondu.

  1. Première: Je ne déclare la fonction ( -(void)countDownSpeed123;) dans l'interface .
  2. Deuxième: je n'ai pas inclus le suivant dans ma classe où j'avais besoin de la valeur (countDownSpeed).

    TargetWithActions *targetActions= [[TargetWithActions alloc] init]; 
    [targetActions countDownSpeed123]; 
    

Maintenant, je suis ce que je dois.

Merci.

+2

Vous souvenez-vous de déclarer "countDownSpeed123" dans votre interface? –

+0

Besoin de plus que cela. Veuillez fournir l'interface, pas seulement l'implémentation. –

+0

Désolé, j'ai oublié de le déclarer dans l'interface. Merci. Quelle est la meilleure façon d'écrire la méthode. En utilisant (id) ou (void)? –

Répondre

3
  1. Dans la classe où vous essayez d'utiliser TargetWithActions, et assurez-vous TargetWithActions.m avez #import "TargetWithActions.h".

  2. Dans TargetWithActions.h assurez-vous dans votre déclaration de classe vous avez déclaré la méthode -(void)countDownSpeed123;

  3. Désolé, je ne comprends pas ce que vous essayez de faire avec countDownSpeed123, il ne retourne rien (vide) donc je Je ne suis pas tout à fait sûr de ce que vous voulez retain. Si la méthode retourne une valeur simple comme float ou int vous n'avez pas besoin de la conserver, elle est transmise par valeur - elle sera copiée.

0

Désolé pour mon mauvais codage et la négligence. J'ai fait des erreurs dans mon programme qui sont très directes. Merci de répondre. Premièrement: je n'ai pas déclaré la fonction (- (void) countDownSpeed123;) dans l'interface. Deuxièmement: je n'ai pas inclus les éléments suivants dans ma classe où j'avais besoin de la valeur (countDownSpeed). TargetWithActions * targetActions = [[TargetWithActions alloc] init]; [targetActions countDownSpeed123]; Maintenant, j'ai ce dont j'ai besoin. Merci.

Questions connexes