簡體   English   中英

我一直在迅速3中收到“信號1:SIGABRT”,但我不知道該如何解決

[英]I keep getting “signal 1: SIGABRT” in swift 3 and I don't know how to get around it

我檢查了所有連接, 沒有一個斷開。 我已經重新連接了所有人,並檢查了所有內容,但我一直收到此錯誤。 它出現在App Delegate的第一行中,我不知道為什么。 這是代碼。

class DetailsViewController: UIViewController, SFSafariViewControllerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate{

    let imagePicker = UIImagePickerController()


    @IBOutlet weak var MITImageView: UIImageView!
    @IBOutlet weak var StanfordImageView: UIImageView!
    @IBOutlet weak var HarvardImageView: UIImageView!

    @IBAction func MITSafariViewControllerButton(_ sender: UIButton) {
        let url = NSURL(string: MITUrl)!
        let svc = SFSafariViewController(url: url as URL)
        present(svc, animated: true, completion: nil)
    }

    @IBAction func StanfordSafariViewControllerButton(_ sender: UIButton) {
        let url = NSURL(string: StanfordUrl)!
        let svc = SFSafariViewController(url: url as URL)
        present(svc, animated: true, completion: nil)
    }

    @IBAction func HarvardSafariViewControllerButton(_ sender: UIButton) {
        let url = NSURL(string: HarvardUrl)!
        let svc = SFSafariViewController(url: url as URL)
        present(svc, animated: true, completion: nil)

    }

    @IBAction func imageChangeButton(_ sender: UIButton) {
        imagePickerClass().imagePickerControllerMIT(picker: imagePicker)
    }
    @IBAction func imageChangeButtonStanford(_ sender: UIButton) {
        imagePickerClass().imagePickerControllerStanford(picker: imagePicker)
    }

    @IBAction func imageChangeButtonHarvard(_ sender: UIButton) {
        imagePickerClass().imagePickerControllerHarvard(picker: imagePicker)
    }

    var MITUrl = "http://web.mit.edu"
    var StanfordUrl = "http://stanford.edu"
    var HarvardUrl = "http://www.harvard.edu"
    override func viewDidLoad() {
        super.viewDidLoad()
        imagePicker.delegate = self


               var logos = [#imageLiteral(resourceName: "MIT Logo"), #imageLiteral(resourceName: "Stanford Logo"), #imageLiteral(resourceName: "Harvard Logo")]

        var pos1 = Int()
        var pos2 = Int()
        var pos3 = Int()

        pos1 = 0
        pos2 = 1
        pos3 = 2

        self.MITImageView.image = logos[pos1]
        self.StanfordImageView.image = logos[pos2]
        self.HarvardImageView.image = logos[pos3]
        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }



}



class imagePickerClass : DetailsViewController {

    var pos1 = Int()
    var pos2 = Int()
    var pos3 = Int()
    var MITImage = Int()
    var StanfordImage = Int()
    var HarvardImage = Int()



    init (){
        pos1 = 0
        pos2 = 1
        pos3 = 2
        MITImage = 3
        StanfordImage = 3
        HarvardImage = 3

        let code = NSCoder()
        super.init(coder: code)!
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func imagePickerControllerMIT(picker: UIImagePickerController) {


            self.imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
            weak var weakSelf = self

            weakSelf?.present((weakSelf?.imagePicker)!, animated: true, completion: nil)



                self.imagePicker.dismiss(animated: true, completion: {
                    let imageSelected = [UIImagePickerControllerOriginalImage] as! UIImage
                    var logos = [#imageLiteral(resourceName: "MIT Logo"), #imageLiteral(resourceName: "Stanford Logo"), #imageLiteral(resourceName: "Harvard Logo"), imageSelected]
                    self.MITImageView.image = logos[self.MITImage]


            })


    }

    func imagePickerControllerStanford(picker: UIImagePickerController) {
        imagePicker.dismiss(animated: true, completion: {
            self.imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
            weak var weakSelf = self
            weakSelf?.present((weakSelf?.imagePicker)!, animated: true, completion: {
            let  imageSelected = [UIImagePickerControllerOriginalImage] as! UIImage
            var logos = [#imageLiteral(resourceName: "MIT Logo"), #imageLiteral(resourceName: "Stanford Logo"), #imageLiteral(resourceName: "Harvard Logo"), imageSelected]
            self.MITImageView.image = logos[self.StanfordImage]

            })

        })
    }


    func imagePickerControllerHarvard(picker: UIImagePickerController) {
        imagePicker.dismiss(animated: true, completion: {
            self.imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
            weak var weakSelf = self
            weakSelf?.present((weakSelf?.imagePicker)!, animated: true, completion: {
            let imageSelected = [UIImagePickerControllerOriginalImage] as! UIImage
            var logos = [#imageLiteral(resourceName: "MIT Logo"), #imageLiteral(resourceName: "Stanford Logo"), #imageLiteral(resourceName: "Harvard Logo"), imageSelected]
            self.MITImageView.image = logos[self.HarvardImage]

            })
        })
    }



}

繼承人的錯誤

class AppDelegate: UIResponder, UIApplicationDelegate,       UIImagePickerControllerDelegate, UINavigationControllerDelegate {

如果您能幫助我解決這個問題,那將是很好的。

首先要說的是我正在使用Xcode 7.0IOS 9.0 而且我在objective-c也遇到了同樣的問題。 我發現異常原因只是調試我的代碼(基本上是由哪一行負責)。 我將與您分享。 盡管您的問題是swift相關的,但我只是想為signal 1: SIGABRT提供幫助。 可能會對您有幫助。

1.首先在任何行上設置代碼的debug pointer 單擊show the break point navigator圖標。

2.單擊create a break point圖標。

3.單擊Add Exception BreakPoint

4.右鍵單擊All Exception ,然后單擊Edit BreakPoint

5.選擇objective-c作為“例外”的選項。

並運行您的應用程序。 它將帶您到獲得SIGABRT的相應行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM