Appel d'une méthode au sein de sa propre classe

remoozremooz Membre
14:12 modifié dans API AppKit #1
Voici mon problème.

Par exemple, j'ai une classe Toto

@implementation Toto<br />{}<br /><br />-(int)&nbsp; Init:(int)i_flag<br />{<br />&nbsp; &nbsp; // execution<br />}<br /><br />-(void) MethodeA:(int)x with:(int)y<br />{<br />&nbsp; &nbsp; int i_test;<br /><br />&nbsp; &nbsp; i_test = [Init:10];<br />}


Est-ce la bonne manière pour appeler la méthode Init ?

Merci par avance pour votre aide.

Réponses

  • 14:12 modifié #2
    <br />-(int)&nbsp; Init:(int)i_flag<br />{<br />&nbsp; &nbsp; [self MethodeA:2 with:3];<br />}<br />
    

    (évite les majuscule en début de méthode)
  • NoNo Membre
    14:12 modifié #3
    dans 1222531867:

    (évite les majuscule en début de méthode)


    Il faut aussi éviter d'utiliser un nom de méthode comme Init, ce qui peut porter à  confusion avec le init officiel.
  • remoozremooz Membre
    14:12 modifié #4
    Merci pour ta rapidité.
    Plus aucune erreur.

    Pour quelles raisons me conseilles-tu de ne pas mettre de majuscule aux méthodes.
    Je ne vois pas en quoi c'est gênant, c'est ma norme de codage.

  • Philippe49Philippe49 Membre
    14:12 modifié #5
    dans 1222530710:

    Voici mon problème.

    Par exemple, j'ai une classe Toto

    @implementation Toto<br />{}<br /><br />-(int)&nbsp; Init:(int)i_flag<br />{<br />&nbsp; &nbsp; // execution<br />}<br /><br />-(void) MethodeA:(int)x with:(int)y<br />{<br />&nbsp; &nbsp; int i_test;<br /><br />&nbsp; &nbsp; i_test = [Init:10];<br />}
    


    Est-ce la bonne manière pour appeler la méthode Init ?

    Merci par avance pour votre aide.




    En programmation objet on envoie des messages.
    Dans le cas que tu envisages tu envoies ce message à  l'instance elle-même, ce qui est le rôle de l'identificateur self

    i_test=[self nomDeLaMethode:10];
  • Philippe49Philippe49 Membre
    septembre 2008 modifié #6
    dans 1222533020:

    Merci pour ta rapidité.
    Plus aucune erreur.

    Pour quelles raisons me conseilles-tu de ne pas mettre de majuscule aux méthodes.
    Je ne vois pas en quoi c'est gênant, c'est ma norme de codage.




    C'est la convention générale sous objective-C, respectée par les développeurs :
    Les majuscules débutent les noms des classes,
    Les macros, énumérations, ... débutent par des préfixes en majuscules,
    Les méthodes et variables d'instances débutent par une minuscule ,
    Dans un nom composé on introduit comme séparateurs des majuscules au début de chaque nom plutà¶t que des underscore _




  • remoozremooz Membre
    14:12 modifié #7
    Ok. Merci pour ces précisions.
  • 14:12 modifié #8
    Ha oui tiens je n'avais pas vu que tu avais oublié le self pour la méthode "Init"
  • psychoh13psychoh13 Mothership Developer Membre
    14:12 modifié #9
    dans 1222533508:


    C'est la convention générale sous objective-C, respectée par les développeurs :
    Les majuscules débutent les noms des classes,
    Les macros, énumérations, ... sont entièrement en majuscules,
    Les méthodes et variables d'instances débutent par une minuscule ,
    Dans un nom composé on introduit comme séparateurs des majuscules au début de chaque nom plutà¶t que des underscore _



    Les macros sont en majuscules, mais les énumérations et les constantes le sont rarement dans Cocoa...
  • Philippe49Philippe49 Membre
    septembre 2008 modifié #10
    dans 1222617832:

    Les macros sont en majuscules, mais les énumérations et les constantes le sont rarement dans Cocoa...


    Oui, autant pour moi, les macros, énumérations, ... débutent par des préfixes en majuscules.
Connectez-vous ou Inscrivez-vous pour répondre.