Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ObjC] Erreur fonction

Amélioration TP Mastermind

    3 octobre 2012 à 16:27:36

    Bonjour à tous,

    Je me suis mis au TP Développement iPhone il y a peu, et après la réalisation du TP, j'ai eu envie de rajouter un élément : vérifier que la combinaison entrée soit bien des chiffres, pour cela j'ai crée une variable error ainsi que la méthode dans mon .h :
    @interface ViewController : UIViewController {
        int error;
    }
    
    -(BOOL)isNumber: (unichar) letter;
    


    Et j'ai ajouté cette méthode dans mon controller.m,
    - (BOOL)isNumber: (unichar) letter {
        int i = 0;
        
        for ( i = 0; i < 10; i++)
        {
            if(letter == i)
            {
                return YES;
            }
            else {
                return NO;
            }
        }
    }
    




    Sauf que lorsque j'essaye d'appeler cette fonction, j'obtiens une erreur "Bad receiver type 'unichar'".. Voici l'appel de la fonction
    if( ![ testChar1 isNumber] )
     {
          error = 1;
     }
    


    Est-ce parce que j'appelle mal ma fonction ?
    testChar1 est bien de type unichar au passage.

    Je vous remercie par avance de l'attention apporté :)

    EDIT : Bon ma fonction est incorrecte déjà, j'ai testé directement dedans et Xcode génère une erreur dans la console
    • Partager sur Facebook
    • Partager sur Twitter
      3 octobre 2012 à 17:17:41

      Essaye plutôt

      if( ![self isNumber:testChar1] )
            error = 1;
      
      • Partager sur Facebook
      • Partager sur Twitter
        4 octobre 2012 à 9:10:52

        Il existe des outils dans le SDK qui permettent de vérifier qu'un NSString est un nombre, il te suffira de "convertir" ton unichar en NSString. En reprenant ton code :

        - (BOOL)isNumber: (NSString*) letter {
        
            NSScanner *scan = [NSScanner scannerWithString:letter];
        
            if([scan scanInt:nil] || [scan scanDouble:nil] || [scan scanFloat:nil] || [scan scanInteger:nil] || [scan scanLongLong:nil])
            {
                return YES;
            }
            return NO;
        }
        


        • Partager sur Facebook
        • Partager sur Twitter

        [ObjC] Erreur fonction

        × 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