首页 > 解决方案 > Swift 错误:执行被中断原因:EXC_BREAKPOINT

问题描述

我重命名了一个文件。我的代码中没有出现错误,但尚未收到此消息。请帮忙!给出错误(不知道为什么堆栈要求我提供更多信息,但我已经尝试了所有方法来解决问题,例如,DerivedData,制作新的游乐场等)(不幸的是,我无法在此处输入我的整个代码,非常感谢帮助,因为我对 Swift 还比较陌生,我什至不知道 EXC_BREAKPROINT(code=1) 错误是什么,尽管谷歌搜索解决方案。)

受影响的代码:

让 intro = IntroViewController()

    import Foundation 
import PlaygroundSupport
import UIKit

public class IntroViewController: UIViewController {
    func onMain(_ block: @escaping () -> Void) {
        DispatchQueue.main.async(execute: block)
    } 

    var previousBtn: UIButton!
    var nextBtn: UIButton!
    var pageLabel: UILabel!
    var pages = [UIView]()
    var pageNum = 0
    let slide = UIImageView(frame: CGRect(x: 40, y: 350, width: 350, height: 250))
    let slide2 = UIImageView(frame: CGRect(x: 40, y: 310, width: 350, height: 250))

    var secondView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 50, width: 300, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "So...what is Mental health about? "
        headerLabel.numberOfLines = 2

        let descriptionLabel = UILabel(frame: CGRect(x: 40, y: 150, width: 300, height: 120))
        descriptionLabel.font = UIFont.systemFont(ofSize: 18, weight: .medium)
        descriptionLabel.textColor = Colors.Fonts.blackDefault
        descriptionLabel.text = """
            Mental health consists of...
             - Physical well-being ️
             - Emotional well-being 
             - Psychological well-being 
            And many more!
            """
        descriptionLabel.numberOfLines = 7

        let description2Label = UILabel(frame: CGRect(x: 40, y: 250, width: 350, height: 130))
        description2Label.font = UIFont.systemFont(ofSize: 17, weight: .medium)
        description2Label.textColor = Colors.Fonts.blackDefault
        description2Label.text = "It affects how we think, act, handle stress and make choices."
        description2Label.numberOfLines = 0

        let img = UIImageView(frame: CGRect(x: 40, y: 400, width: 300, height: 150))
        img.image = #imageLiteral(resourceName: "graph1.jpg")

        view.addSubview(headerLabel)
        view.addSubview(descriptionLabel)
        view.addSubview(description2Label)
        view.addSubview(img)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()

    var thirdView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 10, width: 300, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "How does it affects people? "
        headerLabel.numberOfLines = 2

        let directedGraph = UILabel(frame: CGRect(x: 40, y: 100, width: 350, height: 50))
        directedGraph.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        directedGraph.textColor = Colors.Fonts.blackDefault
        directedGraph.text = "Mental Health affects people from all ages. From young  till old ‍"
        directedGraph.numberOfLines = 5 

        let directedDescription = UILabel(frame: CGRect(x: 40, y: 150, width: 350, height: 50))
        directedDescription.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        directedDescription.textColor = Colors.Fonts.blackDefault
        directedDescription.text = "Positive and Negative mindset could affect mental health in many ways!"
        directedDescription.numberOfLines = 10
        
        let img11 = UIImageView(frame: CGRect(x: 50, y: 200, width: 350, height: 150))
        img11.image = #imageLiteral(resourceName: "img1.1.png")
         

        let weightedGraph = UILabel(frame: CGRect(x: 40, y: 350, width: 350, height: 50))
        weightedGraph.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        weightedGraph.textColor = Colors.Fonts.blackDefault
        weightedGraph.text = "Stats: Suicide rates in Asia (Teenage)"
        weightedGraph.numberOfLines = 2

        let weightedDescription = UILabel(frame: CGRect(x: 40, y: 400, width: 350, height: 50))
        weightedDescription.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        weightedDescription.textColor = Colors.Fonts.blackDefault
        weightedDescription.text = "the attached picture shown below is a chart that shows teen deaths caused by suicide in 2016."
        // credits WHO
        weightedDescription.numberOfLines = 6

        let img2 = UIImageView(frame: CGRect(x: 80, y: 450, width: 300, height: 200))
        img2.image = #imageLiteral(resourceName: "pic2.png")

        view.addSubview(headerLabel)
        view.addSubview(directedGraph)
        view.addSubview(directedDescription)
        view.addSubview(weightedGraph)
        view.addSubview(weightedDescription)
        view.addSubview(img2)
        view.addSubview(img11)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()


    var fourthView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 20, width: 300, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "How can you  your mental health?"
        headerLabel.numberOfLines = 2

        let descriptionLabel = UILabel(frame: CGRect(x: 40, y: 100, width: 300, height: 150))
        descriptionLabel.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        descriptionLabel.textColor = Colors.Fonts.blackDefault
        descriptionLabel.text = "There are many ways to improve your mental health! Such as exercising , playing your favorite sport ️. But most importantly, eating well and getting adequate sleep is very important as having enough sleep can lower the risk of mental health problems"
        descriptionLabel.numberOfLines = 0

        let img = UIImageView(frame: CGRect(x: 5, y: 250, width: 400, height: 250))
        img.image = #imageLiteral(resourceName: "manybrainslawls.png")

        let explain = UILabel(frame: CGRect(x: 40, y: 500, width: 300, height: 100))
        explain.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        explain.textColor = Colors.Fonts.blackAmount
        explain.textAlignment = .center
        explain.text = "Continuing on "
        explain.numberOfLines = 0

        view.addSubview(headerLabel)
        view.addSubview(descriptionLabel)
        view.addSubview(img)
        view.addSubview(explain)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()


    var fifthView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 20, width: 300, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "Part 2 !"
        headerLabel.numberOfLines = 1

        let explain = UILabel(frame: CGRect(x: 40, y: 100, width: 300, height: 100))
        explain.font = UIFont.systemFont(ofSize: 20, weight: .medium)
        explain.textColor = Colors.Fonts.blackDefault
        explain.text = "Besides from doing your favorite activities...here's what you can do to relieve stress & anxiety !"
        explain.numberOfLines = 0

        let home = UILabel(frame: CGRect(x: 40, y: 210, width: 300, height: 50))
        home.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        home.textColor = Colors.Fonts.blackDefault
        home.text = "Be positive! Nothing is impossible! "
        home.numberOfLines = 2

        let access = UILabel(frame: CGRect(x: 40, y: 270, width: 300, height: 50))
        access.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        access.textColor = Colors.Fonts.blackDefault
        access.text = "Get a diary! "
        access.numberOfLines = 1

        let friends = UILabel(frame: CGRect(x: 40, y: 310, width: 300, height: 50))
        friends.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        friends.textColor = Colors.Fonts.blackDefault
        friends.text = "MediTatE! "
        friends.numberOfLines = 1

        let plant = UILabel(frame: CGRect(x: 40, y: 350, width: 300, height: 50))
        plant.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        plant.textColor = Colors.Fonts.blackDefault
        plant.text = "Talk to a friend! "
        plant.numberOfLines = 1

        let approaches = UILabel(frame: CGRect(x: 40, y: 400, width: 300, height: 100))
        approaches.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        approaches.textColor = Colors.Fonts.blackAmount
        approaches.text = "Continuing on..."
        approaches.numberOfLines = 0
        
        view.addSubview(headerLabel)
        view.addSubview(explain)
        view.addSubview(home)
        view.addSubview(access)
        view.addSubview(friends)
        view.addSubview(plant)
        view.addSubview(approaches)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()

    var sixthView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 20, width: 320, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 36, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "undone"
        headerLabel.numberOfLines = 1

        let history = UILabel(frame: CGRect(x: 40, y: 100, width: 320, height: 100))
        history.font = UIFont.systemFont(ofSize: 20, weight: .medium)
        history.textColor = Colors.Fonts.blackDefault
        history.text = "-"
        history.numberOfLines = 0

        let explain = UILabel(frame: CGRect(x: 40, y: 220, width: 320, height: 100))
        explain.font = UIFont.systemFont(ofSize: 20, weight: .medium)
        explain.textColor = Colors.Fonts.blackDefault
        explain.text = "-"
        explain.numberOfLines = 0

        let img3 = UIImageView(frame: CGRect(x: 40, y: 350, width: 350, height: 250))
        img3.image = #imageLiteral(resourceName: "img3.jpeg")

        view.addSubview(headerLabel)
        view.addSubview(history)
        view.addSubview(explain)
        view.addSubview(img3)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()

    var seventhView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 20, width: 350, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "Stress management tips! "
        headerLabel.numberOfLines = 1

        let history = UILabel(frame: CGRect(x: 40, y: 100, width: 310, height: 180))
        history.font = UIFont.systemFont(ofSize: 15, weight: .medium)
        history.textColor = Colors.Fonts.blackDefault
        history.text =
            """
            here are 5 tips that could help you relieve stress in tough situations (eg. Examinations, Presentations, ect)
            1. Before the examintion/presentation, take a deeeeep breath! (inhale & exhale )
            2.
            4.
            5.
            """
        history.numberOfLines = 0

        let slide = UIImageView(frame: CGRect(x: 40, y: 310, width: 350, height: 250))
        slide.image = #imageLiteral(resourceName: "graph6_0.png")

        view.addSubview(headerLabel)
        view.addSubview(history)
        view.addSubview(slide)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()

    var eigthView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 20, width: 350, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 36, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "Conclusion "
        headerLabel.numberOfLines = 1

        let explore = UILabel(frame: CGRect(x: 40, y: 100, width: 350, height: 150))
        explore.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        explore.textColor = Colors.Fonts.blackDefault
        explore.text = "It is totally normal for us humans to feel upset, angry and dissapointed at ourselves"
        explore.numberOfLines = 3

        let run = UILabel(frame: CGRect(x: 40, y: 200, width: 350, height: 150))
        run.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        run.textColor = Colors.Fonts.blackDefault
        run.text = "No matter what, do your best and have a lil faith in ourselves! Thanks for reading! "
        run.numberOfLines = 3

        view.addSubview(headerLabel)
        view.addSubview(explore)
        view.addSubview(run)

        let subviews = view.subviews
        for view in subviews {
            view.isHidden = true
        }

        return view
    }()

    var firstView: UIView = {
        let view = UIView(frame: CGRect(x: 20, y: 20, width: 410, height: 600))

        let headerLabel = UILabel(frame: CGRect(x: 40, y: 50, width: 300, height: 100))
        headerLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        headerLabel.textColor = Colors.Fonts.blackDefault
        headerLabel.text = "What is Mental Health about? "
        headerLabel.numberOfLines = 2

        let basicLabel = UILabel(frame: CGRect(x: 40, y: 250, width: 350, height: 40))
        basicLabel.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        basicLabel.textColor = Colors.Fonts.blackDefault
        basicLabel.text = "How does it affect people ?"
        basicLabel.numberOfLines = 2

        let mw2Label = UILabel(frame: CGRect(x: 40, y: 300, width: 350, height: 40))
        mw2Label.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        mw2Label.textColor = Colors.Fonts.blackDefault
        mw2Label.text = "How can you  your mental health?"
        mw2Label.numberOfLines = 2

        let mw3Label = UILabel(frame: CGRect(x: 40, y: 350, width: 350, height: 40))
        mw3Label.font = UIFont.systemFont(ofSize: 20, weight: .semibold)
        mw3Label.textColor = Colors.Fonts.blackDefault
        mw3Label.text = "Stress management tips! "
        mw3Label.numberOfLines = 2

        let endLabel = UILabel(frame: CGRect(x: 40, y: 400, width: 300, height: 40))
        endLabel.font = UIFont.systemFont(ofSize: 25, weight: .semibold)
        endLabel.textColor = Colors.Fonts.blackDefault
        endLabel.text = "Conclusion "
        

        view.addSubview(headerLabel)
        view.addSubview(basicLabel)
        view.addSubview(mw2Label)
        view.addSubview(mw3Label)
        view.addSubview(endLabel)

        return view
    }()

    func slideShow2() {
        var num = 0
        while runSlideShow2, isAnimating {
            onMain {
                self.slide2.removeFromSuperview()
                self.pages[6].addSubview(self.slide2)
            }
            num = (num + 1) % 4
            usleep(250 * 1_000)
            if !(runSlideShow2 && isAnimating) {
                break
            }
            usleep(250 * 1_000)
            if !(runSlideShow2 && isAnimating) {
                break
            }
            usleep(250 * 1_000)
            if !(runSlideShow2 && isAnimating) {
                break
            }
            usleep(250 * 1_000)
        }
        self.slide2.removeFromSuperview()
    }

    func slideShow() {
        var num = 0
        while runSlideShow, isAnimating {
            onMain {
                self.slide.removeFromSuperview()
                self.pages[5].addSubview(self.slide)
            }
            num = (num + 1) % 6
            usleep(250 * 1_000)
            if !(runSlideShow && isAnimating) {
                break
            }
            usleep(250 * 1_000)
            if !(runSlideShow && isAnimating) {
                break
            }
            usleep(250 * 1_000)
            if !(runSlideShow && isAnimating) {
                break
            }
            usleep(250 * 1_000)
        }
        self.slide.removeFromSuperview()
    }

    let myqueue = DispatchQueue(label: "myQQ", attributes: [])

    var isAnimating = false
    var runSlideShow = false
    var runSlideShow2 = false

    @objc func nextTapped() {
        pageNum += 1
        if isAnimating {
            isAnimating = false
        }
        onMain {
            if self.pageNum == 7 {
                self.nextBtn.isHidden = true
            }
            if self.pageNum == 1 {
                self.previousBtn.isHidden = false
            }
            if self.pageNum == 5 {
                self.runSlideShow = true
            } else {
                self.runSlideShow = false
            }
            if self.pageNum == 6 {
                self.runSlideShow2 = true
            } else {
                self.runSlideShow2 = false
            }
            self.pageLabel.text = "Page \(self.pageNum + 1)"
            self.pages[self.pageNum - 1].removeFromSuperview()
            self.view.addSubview(self.pages[self.pageNum])
        }
        let prevSubs = pages[pageNum - 1].subviews
        for view in prevSubs {
            view.isHidden = true
        }
        let subviews = pages[pageNum].subviews
        myqueue.async {
            self.isAnimating = true
            for view in subviews where self.isAnimating {
                self.onMain {
                    UIView.transition(with: view, duration: 0.3, options: .transitionCrossDissolve, animations: {
                        view.isHidden = false
                    })
                }
                if !self.isAnimating {
                    break
                }
                usleep(200 * 1_000)
            }
            if self.pageNum == 5 {
                self.slideShow()
            }
            if self.pageNum == 6 {
                self.slideShow2()
            }
            self.isAnimating = false
        }
    }

    @objc func previousTapped() {
        pageNum -= 1
        if isAnimating {
            isAnimating = false
        }
        onMain {
            if self.pageNum == 6 {
                self.nextBtn.isHidden = false
            }
            if self.pageNum == 0 {
                self.previousBtn.isHidden = true
            }
            if self.pageNum == 5 {
                self.runSlideShow = true
            } else {
                self.runSlideShow = false
            }
            if self.pageNum == 6 {
                self.runSlideShow2 = true
            } else {
                self.runSlideShow2 = false
            }
            self.pageLabel.text = "Page \(self.pageNum + 1)"
            self.pages[self.pageNum + 1].removeFromSuperview()
            self.view.addSubview(self.pages[self.pageNum])
        }
        let prevSubs = pages[pageNum + 1].subviews
        for view in prevSubs {
            view.isHidden = true
        }
        let subviews = pages[pageNum].subviews
        myqueue.async {
            self.isAnimating = true
            for view in subviews where self.isAnimating {
                self.onMain {
                    UIView.transition(with: view, duration: 0.3, options: .transitionCrossDissolve, animations: {
                        view.isHidden = false
                    })
                }
                if !self.isAnimating {
                    break
                }
                usleep(200 * 1_000)
            }
            if self.pageNum == 5 {
                self.slideShow()
            }
            if self.pageNum == 6 {
                self.slideShow2()
            }
            self.isAnimating = false
        }
    }

    public override func loadView() {
        let view = UIView()
        view.backgroundColor = .white

        view.bounds.size.height = 770
        view.bounds.size.width = 450
        self.view = view
    }

    public override func viewDidLoad() {
        super.viewDidLoad()
        previousBtn = UIButton(frame: CGRect(x: 20, y: 680, width: 100, height: 30))
        previousBtn.setImage(#imageLiteral(resourceName: "arrow_left.png"), for: .normal)
        previousBtn.imageView?.contentMode = UIView.ContentMode.scaleAspectFit
        previousBtn.addTarget(self, action: #selector(previousTapped), for: .touchUpInside)
        previousBtn.isHidden = true

        nextBtn = UIButton(frame: CGRect(x: 360, y: 680, width: 80, height: 30))
        nextBtn.setImage(#imageLiteral(resourceName: "arrow_right.png"), for: .normal)
        nextBtn.imageView?.contentMode = UIView.ContentMode.scaleAspectFit
        nextBtn.addTarget(self, action: #selector(nextTapped), for: .touchUpInside)

        pageLabel = UILabel(frame: CGRect(x: 200, y: 680, width: 100, height: 30))
        pageLabel.text = "Page \(pageNum + 1)"
        pages = [firstView, secondView, thirdView, fourthView, fifthView, sixthView, seventhView, eigthView]
        pageLabel.font = UIFont.systemFont(ofSize: 18, weight: .medium)

        view.addSubview(pages[0])
        view.addSubview(pageLabel)
        view.addSubview(previousBtn)
        view.addSubview(nextBtn)
    }
}

标签: swift

解决方案


可以有两种方法来解决这个问题:重建你所有的行快捷方式来清理是这个:shift+command+K

正如您所说,您重命名了文件。您可以做的其他事情是将所有代码复制到具有您要求的名称的新文件中。如果您的代码很好,这应该可以工作,否则请分享代码。


推荐阅读