Partage
  • Partager sur Facebook
  • Partager sur Twitter

Développez une app iPhone avec le modèle MVC

Connectez le contrôleur et le modèle: Fatal error: index out of range

Sujet résolu
    29 mai 2023 à 16:50:36

    [RESOLU]: Au temps pour moi, j'avais implémenté la Notification en dehors de mes fermetures de QuestionManager.Sherd.get

    Bonjour à tous, j'en suis au chapitre "Connectez le contrôleur et le modèle" et j'ai une erreur qui s'affiche au moment où j'appuie sur le bouton "New Game" (cf. image ci dessous).

    Il me semble pourtant avoir tout fait comme dans le tutoriel, à une exception près concernant la méthode addObserver de NotificationCenter:

    NotificationCenter.default.addObserver(self, selector: #selector(questionLoaded), name: name, object: nil)

    En effet, lorsque j'inscris le selector, j'avais une erreur m'indiquant que (si j'ai bien compris) je devais préciser qu'il s'agissait d'une fonction utilisant objective C: 

    "Argument of '#selector' refers to instance method 'questionLoaded()' that is not exposed to Objective-C"
    


    Donc en cherchant sur internet, j'ai trouvé comment supprimer cette erreur, en rajoutant "@objc" devant ma fonction questionLoaded: 

    @objc func questionLoaded(){
            activityIndicator.isHidden = true
            newGameButton.isHidden = false
    
            questionView.title = game.currentQuestion.title
    
        }

    La compilation fonctionne, mais comme je le disais, m'affiche l'erreur ci dessous lorsque j'appuie sur "New Game" dans l'application. 

    Pensez vous que cette erreur soit due à l'@ que j'ai rajouté? Dans le cas contraire, quelle est le problème et comment le régler? 

    Merci à vous pour votre aide


    -
    Edité par ced_le_dingue 29 mai 2023 à 23:16:29

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2023 à 23:13:39

      Bonsoir ! Imagine que tu as un tableau, comme une liste d'éléments. Chaque élément a un numéro, qu'on appelle "index". C'est comme numéroter les places dans une file d'attente, mais ça commence à 0.
      Maintenant, si tu veux parler du deuxième élément, tu dirais "l'élément à l'index 1" parce que ça commence à compter à partir de 0. Si tu essayes d'accéder à un élément qui n'existe pas dans ton tableau, comme si tu demandais l'élément à l'index 11 alors que tu n'as que deux éléments, le programme ne sait pas quoi faire. Ça serait comme demander la onzième place dans une file où il n'y a que deux personnes.
      Donc, quand tu vois l'erreur "Fatal error: Index out of range," c'est comme si le programme te disait : "Hé, tu me demandes quelque chose qui n'existe pas dans la liste !"
      En résumé, cette erreur arrive quand tu demandes à ton programme quelque chose qui n'a pas de sens dans le contexte de ton tableau, comme si tu essayais de trouver un élément à un endroit qui n'existe pas.
      • Partager sur Facebook
      • Partager sur Twitter
      Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu’il est stupide.

      Développez une app iPhone avec le modèle MVC

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown