Partage
  • Partager sur Facebook
  • Partager sur Twitter

Xcode : readLine() issue

    16 décembre 2016 à 13:26:26

    Bonjour, je suis entrain de faire le cours d'initiation pour le language swift, et pour le TP de la mini calculette, il est écrit d'utilser le code ci-dessous pour utilise la fonction readLine() et pour convertir ce qu'il retourne en Entier.  Pourtant je copy colle exactement et j'ai l'erreur suivante : Use of unresolved identifier 'readLine'

    Pouvez vous m'aider svp ? je n'arrive pas à comprendre pourquoi j'ai cette erreur

    // Fonction permettant de demander à l'utilisateur d'entrer un nombre et de le convertir en entier

    func input() -> Int {

        let strData = readLine();

        return Int(strData!)!

    }

    Un grand merci

    Étienne

    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2016 à 13:23:40

      Thank for your help, but I fix my issue ! I need to update my Xcode to version 8  

      Easy one ! 

      • Partager sur Facebook
      • Partager sur Twitter
        29 mars 2017 à 18:29:33

        func input() -> Int {
        let strData = readLine();
        return Int(strData!)!
        }
        quand j'utilise la fonction comme suite : nmbr = input()

        fatal error: unexpectedly found nil while unwrapping an Optional value

        aidez moi, svp ?


        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2017 à 10:03:45

          abdou uchiha a écrit:

          func input() -> Int {
          let strData = readLine();
          return Int(strData!)!
          }
          quand j'utilise la fonction comme suite : nmbr = input()

          fatal error: unexpectedly found nil while unwrapping an Optional value

          aidez moi, svp ?


          Salut !

          Ta fonction input() Utilise deja la fonction readLine qui renvoie une String optionnel que tu ne surveille pas. C'est un premier problème mais je pense que le vrai problème que tu rencontre est que tu utilise l'initialisation de l'Int par une chaine de charactère qui est aussi un optionnel ! Si tu rentre autre chose qu'un chiffre dans la chaine de charactere, l'Int sera nil et ton force unwrapping fera crash ton programme avec l'erreur que tu as "found nil while unwrapping an Optionnal value"

          Pour cela tu as deux facons de faire :

          Soit ta fonction input() renvoie un Int optionnel comme ceci :

          func input() -> Int? {
            if let strData = readLine() {
              return Int(strData)
            } else {
              return nil
            }
          }

          Soit tu la fait renvoyer une valeur par default en cas d'erreur (genre 0) :

          func input() -> Int {
            if let strData = readLine() {
              return Int(strData) ?? 0
            } else {
              return 0
            }
          }
          





          -
          Edité par giantwow 30 mars 2017 à 10:04:20

          • Partager sur Facebook
          • Partager sur Twitter
          Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
            26 mars 2020 à 23:29:59

            Il suffit de :

            1. "caster" le résultat de notre saisie

            2. utiliser les optionnnels

            operateur = Int(readLine() ?? "") ?? 0

            -
            Edité par VirgileGuglielmi 27 mars 2020 à 0:05:14

            • Partager sur Facebook
            • Partager sur Twitter
              27 mars 2020 à 20:34:53

              Le P.O. attendait votre réponse impatiemment de puis 2 ans !!!!
              • Partager sur Facebook
              • Partager sur Twitter

              Le crayon la gomme et le papier sont les meilleurs outils du programmeur !

              Xcode : readLine() issue

              × 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