[英]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.0和IOS 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.