Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] Valeur de retour

characterAtIndex

Sujet résolu
    9 avril 2012 à 20:04:05

    Bonjour,

    Je suis à la recherche de la valeur de retour de la méthode characterAtIndex de la classe NSString.

    En effet si je demande le caractère de l'index 4 et que ma chaine vaut "hi", ce caractère n'existe pas. Dans ce cas comment vérifier que la méthode (ou fonction) n'a pas échoué ?

    Edit 1 :
    Dans la doc il est écrit:

    Citation : Documentation Officiel d'apple

    Return Value
    The character at the array position given by index.


    Edit 2 :

    Citation : Documentation Officiel d'apple

    Parameters
    index
    The index of the character to retrieve. The index value must not lie outside the bounds of the receiver.



    je reformule ma question :
    Débutant en Objective-C Comment savoir si l'index existe ?
    -> Grace à la méthode lenght
    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2012 à 21:08:08

      Eh bien pour connaitre la longueur d'une chaine tu fais :
      NSLog(@"%i",chaine.length);
      
      . Donc comme le premier caractère d'une chaine est à l'index 0, alors pour savoir si elle existe tu enlèves 1 à la taille de ta chaine de caractère :
      NSString *chaine = @"Hello";
          int indexMax = chaine.length - 1;
          NSLog(@"L'index max est %i", indexMax);
      


      Et tu as ton index max ;)
      • Partager sur Facebook
      • Partager sur Twitter
        9 avril 2012 à 21:14:58

        Merci ;) J'avais trouver tout seul avec un peu de recherche dans la doc.

        J'en profite juste pour te demander pour savoir si tu sais et ne pas créer de nouveau topic.
        Comment fais ton pour choisir le clavier qui va s'afficher lorsque l'on appuie sur une zone de texte.
        J'ai un champ dans lequel je ne vais mettre que des chiffres et je voudrais donc mettre le clavier qui ne propose que des chiffres (comme celui dans contact lorsque l'on rentre un numéro)
        • Partager sur Facebook
        • Partager sur Twitter
          9 avril 2012 à 21:23:32

          Oui, je sais ;)
          Tu cliques sur ton TextField, tu vas dans "Show the Attributes Editor", en faisant apparaitre la colonne de droite, tu descends et là où il y a keyboard tu choisis "Numbers and Punctuation". Tu peux choisir "Number Pad", sauf qu'il n'y a pas de bouton Return et donc tu ne peux pas faire disparaitre le clavier après ta saisie... Ça doit forcement être possible de le faire apparaitre avec du code, mais je ne sais pas comment faire ;)
          • Partager sur Facebook
          • Partager sur Twitter
            9 avril 2012 à 21:28:48

            Ah ok :/ Merci quand même en tout cas ;) c'est un bon début. Tu codes depuis combien de temps sur iOS ?
            • Partager sur Facebook
            • Partager sur Twitter
              9 avril 2012 à 21:31:53

              Derien :) Ça fait 4 mois, depuis Noël :) Mon application iPhone devrait être publié dans deux semaines à peu près. J'ai commencé à la codé il y a 6 semaines, et j'ai vraiment appris beaucoup de choses, basiques, mais qui te mettent rapidement des bâtons dans les roues quand tu ne le sais pas !
              • Partager sur Facebook
              • Partager sur Twitter
                9 avril 2012 à 21:34:58

                Je suis passer par un bouton en dur (mon application est très basique)
                Le problème c'est que la classe : [sender resignFirstResponder] n'a plus aucun effet .. :/
                • Partager sur Facebook
                • Partager sur Twitter
                  9 avril 2012 à 21:36:54

                  Je ne comprends pas, explique moi si tu veux que je t'aide.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 avril 2012 à 21:40:05

                    J'ai changer le clavier comme tu m'as dit. J'ai créer un bouton physique dans l'interface (Round Rec Button), j'assigne la méthode du bouton retour de l'ancien clavier à ce nouveau bouton. Le problème c'est que à l'appel de cette méthode la méthode resignFirstResponder ne fonctionne pas ..
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 avril 2012 à 21:53:29

                      Mais non. La méthode
                      [sender resignFirstResponder];
                      
                      tu l'appliques à ton TextField. Il faut que tu relies ton textField et que tu crées une méthode (IBAction), et dans cette méthode tu met l'instruction :
                      [sender resignFirstResponder];
                      


                      Comme ça par exemple :

                      fichier .h
                      - (IBAction)resignMonTextField:(id)sender;
                      


                      fiche .m
                      - (IBAction)resignMonTextField:(id)sender {
                          [sender resignFirstResponder];
                      }
                      


                      Lorsque tu crée cette action, tu relies ton textField au code, et une petite fenetre s'affiche. Assure-toi que "Event" ait pour valeur "Did End On Exit" et que "Connection" prenne pour valeur "Action" pour que cela crée une action et pas un outlet. :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 avril 2012 à 21:55:56

                        Oui mais du coup je "catch" l'événement du bouton retour par un autre bouton. Ca c'est ce que j'avais avant pour mon clavier classique. La je veux qu'un autre bouton ferme le clavier du TextField
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 avril 2012 à 21:58:49

                          Donne moi tout ton code et dit moi combien de boutons et de textField tu as.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 avril 2012 à 22:08:49

                            euh ... C'est le mastermind du premier TP avec un textField en plus

                            viewController.m
                            - (IBAction)return_key:(id)sender {
                                
                                [sender resignFirstResponder];
                                ....
                            }
                            

                            viewController.h
                            - (IBAction)return_key:(id)sender;
                            
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 avril 2012 à 22:12:18

                              Tu n'as qu'une méthode ? O.o
                              • Partager sur Facebook
                              • Partager sur Twitter
                                9 avril 2012 à 22:29:11

                                c'est celle la concerné ;)
                                en plus j'ai celle la :
                                - (IBAction)retry:(id)sender {
                                    NSLog(@"Je suis appelé");
                                    nb = arc4random() % 9000 + 1000;
                                    NSLog(@"nombre choisi = %d", nb); 
                                    result.text = @"J'ai choisi un nouveau chiffre. A vous ;)";
                                }
                                


                                plus celle générer automatiquement par xcode
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 avril 2012 à 0:41:47

                                  Je ne comprends pas bien, mais il faut que tu crée une action en reliant ton textField à ton code, et dans cette méthode tu entres ton instruction :
                                  [sender resignFirstResponder];
                                  
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 avril 2012 à 9:12:08

                                    Bonjour,

                                    Ce n'est qu'un détail mais ce sont des crochets à mettre entre iOS dans ton titre. Bizarre, pourtant tu fais du développements iOS. ^^
                                    Fais attention la prochaine fois.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
                                      10 avril 2012 à 11:07:20

                                      Oui mais lors de la création du sujet je ne trouver pas les crocher ;) Atl+Shift+5
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      [iOS] Valeur de retour

                                      × 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