想要将 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

CupertinoSlider

Redis: userd_memory使用超出maxmemory

如何在 viewDidLoad 中调用 IBAction?

jq slider()

对数 UISlider

将 Ajax 响应分配给 php 变量