Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Objective-C] Duplicate declaration of Method

Sujet résolu
    2 mai 2013 à 22:43:29

    Bonsoir,

    J'apprends en ce moment grâce au livre de Michel Martin Issu du fameux SDZ "Créez des applications pour IPHON, IPAD et IPOD TOUCH"

    Tout s'enchaîne correctement je suis les indications à la lettre et j'avance bien, mais aujourd'hui me voilà heurté à un soucis que je n'avais jamais rencontré auparavant et j'espère que vous pourrez m'aider.

    Je suis au Chapitre 12 Les informations Tabulaires basé sur Master-Detail Application et lorsque je rentre ce code ->

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return _objects.count;
    }
    
    

    Une notification me dit " Duplicate declaration of method tableView:numberOfRowsInSection.

    et idem pour cette ligne de code ->

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    Je ne peux donc pas continuer sans résoudre ce problème. Si je suis mot à mot il me fait comprendre que je duplique une déclaration de méthode et que ça pose problème mais il veut quoi en échange :p une alternative oui mais laquelle.

    Merci d'avance chers ami(e)s.

    • Partager sur Facebook
    • Partager sur Twitter
    Rien n'est vrai tout est permis
      2 mai 2013 à 23:46:31

      D'après ce que tu viens d'écrire, tu peux tout à fait résoudre ce problème ! Aller, réfléchi un peu, tu seras content d'avoir trouvé ! ;)

      C'est juste une question de bon sens ;)

      -
      Edité par Coolsinus 2 mai 2013 à 23:48:28

      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2013 à 0:02:03

        Je ne peux pas avoir un indice, je t'avoue que ta réponse me fait sourire, car je suis d'accord avec toi que je serais content mais j'ai essayé de la modifier mais modifier quoi :p 

        Je cherche encore un peu et je tiens au courant =p

        Je dois indiquer une source après section ou bien peut être un nombre je peux avoir un indice :p

        -
        Edité par ThomaStark 3 mai 2013 à 0:22:01

        • Partager sur Facebook
        • Partager sur Twitter
        Rien n'est vrai tout est permis
          3 mai 2013 à 9:15:04

          Je ne fais pas de programmation ios et je pense avoir vu ton erreur relis tes deux lignes de code à la suite peut être qu'en fait tu n'as qu'une erreur :p
          • Partager sur Facebook
          • Partager sur Twitter
            3 mai 2013 à 12:47:15

            Bonjour,

            Alors j'ai cherché et je me suis rendu compte que les lignes que je vous montre par exemple celle-ci

            - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
            {
                return _objects.count;
            }

             N'est en fait pas de moi, c'est en ayant écrit celle-ci un peu plus haut pour retourner le nombre de valeurs à afficher dans Table View ->

            -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
            {
                return [maListe count];
            }

            que l'on m'indique l'erreur sur le code que tout au dessus.

            -
            Edité par ThomaStark 3 mai 2013 à 12:49:14

            • Partager sur Facebook
            • Partager sur Twitter
            Rien n'est vrai tout est permis
              3 mai 2013 à 13:26:18

              Bonjour, 

              si je peux me permettre un indice le voici : 

              • Partager sur Facebook
              • Partager sur Twitter
                3 mai 2013 à 13:26:46

                ThomaStark a écrit:

                Bonjour,

                Alors j'ai cherché et je me suis rendu compte que les lignes que je vous montre par exemple celle-ci

                - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section// même nom
                { return _objects.count; }

                 N'est en fait pas de moi, c'est en ayant écrit celle-ci un peu plus haut pour retourner le nombre de valeurs à afficher dans Table View ->

                -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section// même nom
                {
                    return [maListe count];
                }

                que l'on m'indique l'erreur sur le code que tout au dessus.

                -
                Edité par ThomaStark il y a 36 minutes


                Change le nom d'un des deux et plus d'erreur :D
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mai 2013 à 13:43:56

                  J'ai fait ça y a plus d'erreurs mais est ce la bonne réponse :p

                  -(NSInteger)MasterView:(UITableView *)MasterView numberOfRowsInSection:(NSInteger)section
                  {
                      return [maListe count];
                  }

                   Merci en tout cas pour vos coups de pouce c'est mieux que de donner direct la réponse :p

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Rien n'est vrai tout est permis
                    3 mai 2013 à 16:03:27

                    Nan c'est pas ça. Voici la réponse : Quand tu crées un projet Master-Detail Application, Xcode génère dans ton storyboard un NavigationController, un TableViewController (Master) et un ViewController (Detail). Ton fichier MasterViewController.m est une subclass de UITableViewController, et ainsi certaines méthodes telles que numberOfRowsInSection: , numberOfSections: et cellForRowAtIndexPath:  sont automatiquement ajoutées par Xcode.

                    Ainsi, je suppose qu'en voyant cela dans le bouquin, tu les as réécrite dans le fichier MasterDetailViewController.m, alors qu'elles y étaient déjà. Et donc c'est pour cela que Xcode te signale que tu as "Duplicate declaration of method blablabla" ;) Donc pour résout le problème, assure toi de ne les implémenter qu'une seule fois ! :)

                    Et ça : -(NSInteger)MasterView:(UITableView *)MasterView numberOfRowsInSection:(NSInteger)section c'est archi-faux ! La seule raison pour laquelle ton erreur n'apparait plus est parce qu'elles ont un nom différent : -(NSInteger)MasterView:(UITableView *) ≠ -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section. Xcode ne les considère donc plus comme identiques ;) 

                    Voila ;)

                    PS : je disais que l'erreur était devant tes yeux car en ayant traduit l'erreur qui est carrément explicite (tu verras t'en auras des plus zarb), tu pouvais comprendre que tu avais "dupliqué la méthode", et donc qu'il suffisait d'effacer l'une d'elle.

                    -
                    Edité par Coolsinus 3 mai 2013 à 16:07:52

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mai 2013 à 20:04:54

                      C'était aussi simple que ça alalala je suis ridicule :p 

                      Non je plaisante la prochaine je me dirais que la solution la plus simple est souvent la meilleure hein (rasoir d'ockam).

                      J'entends bien ce que tu as voulu me faire comprendre dans le sens ou s'était juste sous mes yeux oui ^^ mais je cherchais bien plus compliquer je vous remercie tous de votre aide.

                      Et pour ceux qui on du soleil profiter du beau temps et bouffer du code à l'extérieur ;)

                      -
                      Edité par ThomaStark 3 mai 2013 à 20:05:28

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Rien n'est vrai tout est permis

                      [Objective-C] Duplicate declaration of Method

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown