当我尝试将分数从GameViewController
委托给ViewController
时,我遇到了这个问题:
如果我删除bestName
,它会正常工作。
答案 0 :(得分:1)
第一次运行应用时,UserDefaults
中没有值。
这意味着在viewDidLoad
中,调用:
UserDefaults.standard.string(forKey:)
将返回nil
值。但是您将结果分配给非可选变量。
将行更改为:
if let name = UserDefaults.standard.string(forKey:"bestName") {
bestName = name
}
调用integer(forKey:)
没有问题,因为如果没有现有值,它会返回0
。