2016-10-10 2 views
-2

enter image description hereЧто значит нить 1 exc_bad_instruction (код = exc_i386_invop субкодовое = 0x0)

Я получил эту проблему, когда я попытался передать баллы от GameViewController к ViewController:

enter image description here

Он работает нормально если я удалю bestName.

+2

Скопируйте и вставьте код здесь, не публикуйте изображение с кодом. – kennytm

ответ

1

При первом запуске приложения в UserDefaults значения не будут.

Это означает, что в viewDidLoad, вызов:

UserDefaults.standard.string(forKey:) 

возвращает значение nil. Но вы присваиваете результат переменной, которая не является необязательной.

Изменение линии:

if let name = UserDefaults.standard.string(forKey:"bestName") { 
    bestName = name 
} 

Там нет никаких проблем с вызовом integer(forKey:), потому что она возвращает 0, если нет существующего значения.

+0

Большое спасибо, он работает. – shmiki

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