Я продолжаю получать поток 1: сигнал SIGABRT в Xcode

Я пытаюсь написать простое приложение для быстрого угадывания для iPhone. Код работает успешно, отображая «Сборка выполнена успешно». Однако я продолжаю получать это сообщение для определенной строки: «Поток 1: сигнал SIGABRT».

Строка содержит «num += Int( (rand()%4) + 1)», что отлично работает на игровой площадке.

Может ли кто-нибудь сказать мне, как решить эту проблему?

import UIKit

class ViewController: UIViewController {


var num = 0


@IBOutlet var GuessField: UITextField!


@IBOutlet var ResultLabel: UILabel!


@IBOutlet var ScoreLabel: UILabel!


@IBAction func NewGameButton(sender: UIBarButtonItem) {


num += Int( (rand()%4) + 1)

    /* Random numbers generated at num range from 1 to 4, which respectively
    correspond to strings BMW, Mercedes, Lamborgini, and Ford. */

}




override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

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

@IBAction func ResultButton(sender: AnyObject) {

    if GuessField.text == "BMW" {
        if num == 1 {ResultLabel.text = "You Win!"}
        else {ResultLabel.text = "Try Again!"}

    }

    if GuessField.text == "Mercedes" {
        if num == 2 {ResultLabel.text = "You Win!"}
        else {ResultLabel.text = "Try Again!"}

    }


    if GuessField.text == "Lamborgini" {
        if num == 3 {ResultLabel.text = "You Win!"}
        else {ResultLabel.text = "Try Again!"}

    }

    if GuessField.text == "Ford" {
        if num == 4 {ResultLabel.text = "You Win!"}
        else {ResultLabel.text = "Try Again!"}

    }


}

}

person mhyousefi    schedule 23.07.2015    source источник
comment
После добавления розеток вы удалили какой-либо элемент управления из пользовательского интерфейса?   -  person neo    schedule 23.07.2015
comment
Единственное изменение, которое я сделал, было следующим: для NewGameButton (которое, кстати, и вызывает ошибку) я сначала создал кнопку, но затем удалил ее и сделал ее элементом кнопки панели.   -  person mhyousefi    schedule 24.07.2015
comment
Вы создали выходное соединение для кнопки, которую вы удалили? Если да, то удаление кнопки не удаляет выходное соединение. Ошибка, которую вы получаете, говорит о том, что ваш класс не реализует какой-либо протокол?   -  person neo    schedule 24.07.2015
comment
Я думаю, что проблема была в том, что вы указали. Я создал новый проект и сделал это снова, и на этот раз у меня не было ошибки. Это определенно имело какое-то отношение к розетке. Спасибо.   -  person mhyousefi    schedule 24.07.2015
comment
Поэтому я собираюсь добавить свой комментарий в качестве ответа, чтобы люди знали, что на вопрос дан ответ.   -  person neo    schedule 24.07.2015


Ответы (2)


Если вы создали элемент управления и добавили выходное соединение к контроллеру представления, а затем удалили элемент управления со страницы до того, как должным образом удалили выходное соединение из соединений элемента управления, возникает ошибка «Поток 1: сигнал SIGABRT». У меня была такая же проблема раньше. Также может быть сказано, что ваш класс не совместим с KeyValueCoding или что-то в этом роде. Убедитесь, что вы удалили все соединения элемента управления, прежде чем снимать элемент управления.

person neo    schedule 24.07.2015

Попробуйте сказать num = Int( (rand()%4) + 1) вместо num += Int( (rand()%4) + 1)

person ab341    schedule 23.07.2015
comment
Здравствуйте, спасибо за ваш ответ. Я попробовал то, что вы упомянули, но я все еще получаю ту же ошибку. - person mhyousefi; 24.07.2015