Я работаю над своим первым приложением для iOS с Xcode
и Swift
. Мое приложение имеет несколько UIViewController
с (= VC). Все работает довольно хорошо, но есть ошибка, которую я не смог решить самостоятельно с помощью Google или StackOverflow.
Моя проблема:
У меня есть UIButton
под названием «Выход» в ВК «CompleteTest», который я контролирую, перетаскивая в раскадровке Main
в «Главное меню» ВК, чтобы он возвращал пользователя в «Главное меню». когда она нажата.
Но когда я нажимаю эту UIButton
в симуляторе, появляется ошибка:
Появляется сигнал SIGABRT нити 1.
Это не первый раз, когда я сталкиваюсь с этой ошибкой и вижу, что несколько потоков в переполнении стека дают решение этой проблемы. Раньше, проверяя торговые точки, я мог довольно легко решить эту ошибку.
Но в этом случае это решение не работает, потому что выходы выглядят нормально (восклицательные знаки не показаны).
Что еще более странно, это место, где отображается ошибка.
Обычно ошибка SIGABRT
отображается в AppDelegate
, если я не ошибаюсь.
Но в моем случае это показано в строке 54 файла 'CompleteTest' VC. В этой строке я передаю данные в следующий VC 'Final Complete test' с помощью функции переопределения 'prerpare'.
К сожалению, я не мог поставить изображения в этом вопросе, даже жесткие
Я подготовил их. В любом случае, я надеюсь, что моя проблема все еще ясна.
Кроме того, извините за мой плохой английский, так как это мой второй язык.
Как мне поступить? Заранее благодарю за помощь!
import UIKit
class CompleteTest: UIViewController {
// Components of Visualisation VC
@IBOutlet weak var ShotNumber: UILabel!
@IBOutlet weak var ProjectedScore: UILabel!
@IBOutlet weak var Distance: UILabel!
var sum: Double = 100.0 //sum represents overall Score of Test
@IBOutlet weak var Report: UIButton!
var help: Int = 0 // var 'help' is helping to change the number showed on the Scoring Buttons in VC
@IBOutlet weak var Left1: UIButton!
@IBOutlet weak var Right1: UIButton!
@IBOutlet weak var Center1: UIButton!
@IBOutlet weak var BadContact1: UIButton!
//Percentage components
var leftpct: Int = 0
var rightpct: Int = 0
var centerpct: Int = 0
var totalpct: Int = 0
var badcontactpct: Int = 0
// Transfer of data from ViewController 'CompleteTest' to ViewController 'FinalCompleteTest'
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let finalCompleteTest = segue.destination as! FinalCompleteTest
finalCompleteTest.score = String(sum)
finalCompleteTest.Leftpct = Int(leftpct)
finalCompleteTest.Rightpct = Int(rightpct)
finalCompleteTest.Centerpct = Int(centerpct)
finalCompleteTest.Totalpct = Int(totalpct)
finalCompleteTest.BadContactpct = Int(badcontactpct)
}
override func viewDidLoad() {
super.viewDidLoad()
Report.isHidden = true
}
//Scoring Buttons
@IBAction func BadContact(_ sender: Any) {
sum -= 1
BadContact1.setTitle("OK", for: .normal)
badcontactpct += 1
}
@IBAction func Left(_ sender: Any) {
sum -= 0.5
help += 1
Left1.setTitle(String(help), for: .normal)
if help == 1 {
leftpct += 1
totalpct += 1}
}
@IBAction func Right(_ sender: Any) {
sum -= 0.5
help += 1
Right1.setTitle(String(help), for: .normal)
if help == 1 {
rightpct += 1
totalpct += 1}
}
@IBAction func Center(_ sender: Any) {
Center1.setTitle("0", for: .normal)
centerpct += 1
totalpct += 1
}