2015-07-23 8 views
0

Я пытаюсь написать простое приложение для быстрого угадывания для iPhone. Код запускается успешно, отображая «Build Succeeded». Тем не менее, я продолжаю получать это сообщение для определенной строки: «Thread 1: signal SIGABRT».Я продолжаю получать Thread 1: сигнал SIGABRT в Xcode

Строка содержит «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!"} 

    } 


} 

} 
+0

После добавления торговых точек вы удалили какой-либо элемент управления из пользовательского интерфейса? – neo

+0

Единственное изменение, которое я сделал, это следующее: для «NewGameButton» (какой из них происходит ошибка), я сначала создал «Button», но затем удалил его и сделал его «Item Button». – MHY

+0

Вы создали выходное соединение для удаленной кнопки? Если вы это сделали, то удаление кнопки не приведет к удалению выходного соединения. Получается ли ошибка, о которой вы говорите, о своем классе, не реализующем какой-либо протокол? – neo

ответ

1

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

1

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

+0

Здравствуйте, спасибо за ваш ответ. Я попробовал то, что вы упомянули, но я все еще получаю ту же ошибку. – MHY