它是什么意思线程1 exc_bad_instruction(code = exc_i386_invop subcode = 0x0)

时间:2016-10-10 13:36:02

标签: swift swift3

enter image description here

当我尝试将分数从GameViewController委托给ViewController时,我遇到了这个问题:

enter image description here

如果我删除bestName,它会正常工作。

1 个答案:

答案 0 :(得分:1)

第一次运行应用时,UserDefaults中没有值。

这意味着在viewDidLoad中,调用:

UserDefaults.standard.string(forKey:)

将返回nil值。但是您将结果分配给非可选变量。

将行更改为:

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

调用integer(forKey:)没有问题,因为如果没有现有值,它会返回0