Swift 选项 - 从“x”到“x”的条件转换警告始终成功

2023-12-03

我想知道是否有办法关闭/避免 xcode 中的“黄色”警告if let...NSUserDefaults构造其中键具有已知值的结构。

例如:

if let x = NSUserDefaults.standardUserDefaults().integerForKey("myKey") as? Int {...}

因为if let我必须使用as?。但是,由于我使用的是已知的值类型(在本例中为整数),as? Int实际上是多余的 - 这就是为什么我收到“黄色警告”。

想法?有没有更好的方法来编码这些类型的构造?


我的建议是解决这个问题,而不是消除警告。 :)

NSUserDefaults.standardUserDefaults().integerForKey("myKey")不返回可选,并且类型已知,因此您不需要与可选绑定if let也不类型转换as?.

只是这个:

let x = NSUserDefaults.standardUserDefaults().integerForKey("myKey")

就足够了,因为.integerForKey刚刚返回0如果无法获取实际值。

如果您不喜欢这种获取默认值的行为(我不喜欢),那么就不要使用.integerForKey并使用objectForKey而是使用可选的绑定和类型转换。就像你首先做的那样,但是.objectForKey替换.integerForKey。这样,如果键的值无法访问,您将得到实际的 nil,而不是默认值。

if let x = NSUserDefaults.standardUserDefaults(). objectForKey("myKey") as? Int {...}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 选项 - 从“x”到“x”的条件转换警告始终成功 的相关文章

随机推荐