Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SWIFT] Erreur EXC_BAD_ACCESS cours MOOC-MVC

Sujet résolu
    29 avril 2022 à 21:24:12

    Bonjour à tous,

    Je suis actuellement en train de suivre le cours "Développez une application iPhone avec le modèle MVC" d'Ambroise Collon. Je suis au chapitre "Connectez le contrôleur et le vue" et je suis bloqué lors du lancement de l'application. 

    En effet, il me semble avoir bien respecté le code mais lorsque je clique sur le bouton "New Game", j'obtiens un erreur "Thread 1: EXC_BAD_ACCESS (code=2, address=0x7fff8679bb90)" ciblant les lignes 30 et 31 de mon fichier ViewController.swift qui font appelle à la classe QuestionView du fichier du même nom. J'ai un peu fait le tour pour essayer de trouver le problème mais rien n'y fait. Le programme fonctionne correctement sans erreur lorsque que je mets en commentaire les deux lignes concernées.

    Voici les codes en question :

    ViewController.swift (dans le dossier Controller) :

    //
    //  ViewController.swift
    //  OpenQuizz
    //
    //  Created by Yoan on 28/04/2022.
    //
    
    import UIKit
    
    class ViewController: UIViewController {
    
        @IBOutlet weak var newGameButton: UIButton!
        @IBOutlet weak var activityIndicator: UIActivityIndicatorView!
        @IBOutlet weak var scoreLabel: UILabel!
       
        @IBOutlet weak var questionView: QuestionView!
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view.
        }
    
        @IBAction func didTapNewGameButton(){
            startNewGame()
        }
        private func startNewGame() {
            activityIndicator.isHidden = false
            newGameButton.isHidden = true
            
            questionView.title = "Loading..."
            questionView.style = .standard
            
            scoreLabel.text = "0 / 10"
            
        }
    }
    


    QuestionView.swift (dans le dossier View, qui contient également mon storyboard) :

    //
    //  QuestionView.swift
    //  OpenQuizz
    //
    //  Created by Yoan on 29/04/2022.
    //
    
    import UIKit
    
    class QuestionView: UIView {
        @IBOutlet private var label: UILabel!
        @IBOutlet private var icon: UIImageView!
        
        var title = "" {
            didSet {
                label.text = title
            }
        }
        
        enum Style {
            case correct, incorrect, standard
        }
        var style: Style = .standard {
            didSet {
                setStyle(style)
            }
        }
        
        private func setStyle(_ style: Style) {
            switch style {
            case .correct:
                backgroundColor = UIColor(red: 200/255.0, green: 236/255.0, blue: 160/255.0, alpha: 1)
                icon.image = UIImage(named: "Icon Correct")
                icon.isHidden = false
            case .incorrect:
                backgroundColor = UIColor(red: 243/255.0, green: 135/255.0, blue: 148/255.0, alpha: 1)
                icon.image = UIImage(named: "Icon Error")
                icon.isHidden = false
            case .standard:
                backgroundColor = UIColor(red: 191/255.0, green: 196/255.0, blue: 201/255.0, alpha: 1)
                icon.isHidden = true
            }
        }
    }
    


    A noter que je suis débutant de chez débutant.

    Merci d'avance de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      30 avril 2022 à 18:44:58

      Salut, tu as sûrement oublié de connecter l’IBOutlet
      • Partager sur Facebook
      • Partager sur Twitter
        30 avril 2022 à 20:45:16

        Bonjour,

        Merci pour ton retour. Les IBOutlet sont bien connectés (cf les captures ci-après, les points sont bien remplis....) 

        EDIT : J'avais en fait lié le mauvais item depuis le storyboard :D J'avais lié le label directement au lieu de l'UIView. Merci pour ta réponse qui a pu me mettre sur la piste !

        -
        Edité par Yoan78180 30 avril 2022 à 20:54:34

        • Partager sur Facebook
        • Partager sur Twitter

        [SWIFT] Erreur EXC_BAD_ACCESS cours MOOC-MVC

        × 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