我想知道是否有办法关闭/避免 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(使用前将#替换为@)