2015-04-14 2 views
1

По какой-то причине, моя программа падает, показывая эту ошибку для обоих этих строк кодаexc_breakpoint (код = exc_i386_bpt субкодовое = 0x0)

Ошибка линии 1)

@IBAction func doneTapped(sender: AnyObject) 
{ 
    var randomNumber = Int(arc4random_uniform(2)) 
    if (randomNumber == 1) { 
     self.performSegueWithIdentifier("segueLib1", sender: nil) 
    } 

    else{ 
     self.performSegueWithIdentifier("segueLib2", sender: nil) 
    } 
} 

Ошибка линии 2)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 

    var madLibs1 = segue.destinationViewController as MadLib1ViewController 

    var madLibs2 = segue.destinationViewController as MadLib2ViewController 

Я с целью случайно непосредственно перейти между двумя контроллерами зрения, MadLib1ViewController и MadLib2ViewController как doneTapped является pressed.However, когда кнопка сливает, вместо этого аварийного завершения сек и отображает:

exc_breakpoint (code=exc_i386_bpt subcode=0x0) 

Я удалил все физические синие точки останова в коде. Может кто-нибудь объяснить мне ошибку или как ее решить. Благодаря!

ответ

1

Ваш performSegue должен отправить self во второй параметр.

Если это не так, вы должны знать, что точки останова могут быть типа исключения. Возможно, ваше следующее представление имеет исключение ограничения, и вы нарушаете это. Я попробую «спамить» кнопку «Пропустить точку останова», чтобы убедиться, что это проблема.

Прежде чем сделать это, не могли бы вы выделить точный номер линии аварии? (просто добавьте //This line causes crash) рядом с крутой линией.

-1

Я испытал это при использовании точки останова, которая будет записывать что-то, а затем продолжить автоматически. Отключено, что, и все вернулось к норме. Как следует из сообщения, это BreakPoint Issue

Попробуйте удалить все точки останова

0

Для 1), Вы должны назвать «performSegue» с собой в качестве отправителя, а не ноль.

self.performSegueWithIdentifier("segueLib1", sender: self) 
self.performSegueWithIdentifier("segueLib2", sender: self) 

Ваш код в пункте 2) должен быть:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if (segue.identifier == 'segueLib1') { 
    var madLibs1 = segue.destinationViewController as MadLib1ViewController 
    else if (segue.identifier == 'segueLib2') { 
    var madLibs2 = segue.destinationViewController as MadLib2ViewController 
    } 

    // Do something with your var 
} 
Смежные вопросы