想要将 Slidervalue 设置为 UserDefault:线程 1:致命错误:在隐式展开可选值时意外发现 nil [重复]
Posted
技术标签:
【中文标题】想要将 Slidervalue 设置为 UserDefault:线程 1:致命错误:在隐式展开可选值时意外发现 nil [重复]【英文标题】:Want to set Slidervalue to a UserDefault: Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value [duplicate] 【发布时间】:2020-04-07 10:29:16 【问题描述】:我的问题是我想将滑块的值设置为 UserDefault。在应用程序的第一个版本中,一切正常,我在版本 2 中使用相同的代码。现在 Xcode 显示错误“线程 1:致命错误:在隐式展开可选值时意外发现 nil”,但我从未在编码。我更新了Xcode,可能有问题。
提前谢谢你
func speichernNutzerEinstellungenIntervall()
standard.set(zeitInsgesamt, forKey: Keys.speichernZeitInsgesamt)
func überprüfenLängeIntervall()
let speichernZeitInsgesamt = standard.integer(forKey: Keys.speichernZeitInsgesamt)
zeitInsgesamt = speichernZeitInsgesamt
sliderIntervallOutlet.setValue(Float(zeitInsgesamt), animated: true) //Here I get the error
(我已将变量“zeitInsgesamt”声明为全局变量。不知道这是否重要。)
【问题讨论】:
zeitInsgesamt 的数据类型是什么? 【参考方案1】:sliderIntervallOutlet
的值为nil
。在设置任何值之前尝试检查属性的 nil 值。像这样
func überprüfenLängeIntervall()
let speichernZeitInsgesamt = standard.integer(forKey: Keys.speichernZeitInsgesamt)
zeitInsgesamt = speichernZeitInsgesamt
if sliderIntervallOutlet != nil
sliderIntervallOutlet.setValue(Float(zeitInsgesamt), animated: true)
【讨论】:
谢谢,但现在我收到错误消息:“条件绑定的初始化程序必须具有可选类型,而不是 'Int'”,与“如果让 speichernZeitInsgedamt....”一致。你知道怎么解决吗?我无法将 speichernZeitInsgesamt 更改为可选项,可以吗?standard.integer(forKey: Keys.speichernZeitInsgesamt)
的值是多少?它是否返回任何值?
是的,我打印它,上面写着“163”。但是当我想将滑块的值设置为 speichernZeitInsgesamt 的值时,我得到了错误。
什么是sliderIntervallOutlet
?请检查这是否为零。
是的,sliderIntervallOutlet 的值为 nil。但为什么这是个问题?以上是关于想要将 Slidervalue 设置为 UserDefault:线程 1:致命错误:在隐式展开可选值时意外发现 nil [重复]的主要内容,如果未能解决你的问题,请参考以下文章