当前位置:  开发笔记 > IOS > 正文

Swift选项 - 从'x'到'x'的条件转换警告总是成功

如何解决《Swift选项-从'x'到'x'的条件转换警告总是成功》经验,为你挑选了1个好方法。

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

例如:

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

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

思考?有没有更好的方法来编码这些类型的结构?



1> ayaio..:

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

NSUserDefaults.standardUserDefaults().integerForKey("myKey")不返回Optional,并且类型是已知的,因此您既不需要可选绑定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 {...}

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有