2016-01-16 3 views
1

Я хочу отсканировать QR-код (делает этот пример: http://humberaquino.me/qrcode-scanning-in-swift/), однако у меня есть проблема с этим кодом:prepareForSegue ошибка компилятора

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let barcodeViewController: BarcodeViewController = segue.destinationViewController as! BarcodeViewController 

    barcodeViewController.delegate = self 
} 

Я получил это:

error

Когда я меняю это на as!, я получаю:

Тема 1: сигнал SIGABRT на этой линии.

+0

Попробуйте воспользоваться командой + option + shift + K, чтобы очистить проект. Также вы можете просто «разрешить barcodeViewController = segue.destinationViewController как! BarcodeViewController', так как говорят, что тип дважды избыточен. – boidkan

+0

Ваш BarcodeViewController является подклассом UIViewController правильно? – boidkan

+0

Право его подкласса – SURViR

ответ

0

Если у вас более одного сеанса на этом контроллере, это может быть еще один выстрел. проверка segue.identifier - один из способов убедиться, что вы на правильном. Если поведение основано на классе, вы можете сделать это:

if let barcodeViewController = segue.destinationViewController as? BarcodeViewController 
{ 
    barcodeViewController.delegate = self 
} 
+0

теперь входя в другую ViewController, но до сих пор нет QR-код сканирования экрана: C – SURViR

+0

Это, казалось бы, для подтверждения первой проблемы. У вас есть segue, который не идет туда, где вы ожидали, что он пойдет. Таким образом, это изначально вызвало крах, потому что вы не проверяли место назначения VC в этом случае. Теперь это не приведет к сбою, но это просто означает, что вы не выполняете свой код на этом (неправильном) контроллере назначения. Вам нужно выяснить, 1) если стрельба, которая стреляет, является той, которую вы намеревались, 2) если это так, то почему пункт назначения является неправильным. –

+0

Я отремонтировал его, сделав раскадровку снова – SURViR

Смежные вопросы