yes*_*joe 0 nsuserdefaults swift
许多在线教程似乎赞成使用if-let或guard-let语句从UserDefaults中检索可选值.这有意义吗?我读到Apple打算让我们立即为UserDefaults提供默认值.
使用guard语句安全地解包这些值会导致更多代码,如果您的应用程序立即初始化这些值,这似乎是多余的.从UserDefaults强制解包值是否有任何缺点?
nil当您提供的密钥未定义时,返回对于UserDefaults来说是完全合理的.此外,当你说object(forKey:)没有确定类型时从UserDefaults返回的值- 从Xcode 8种子6开始,它是一个Any.使用if/guard let是一种方法,在单个表达式中询问此值是否为非nil,如果是,则是否可以将其转换为您期望的类型,而不会出现崩溃的危险.因此,这是一个很好的方法.它不是力展开或强制铸造.它安全展开,安全铸造.如果失败,则条件失败,并且没有造成伤害.
力展开或强制铸造将涉及使用感叹号(!).当然,如果你绝对100%确定自己的理由,那么你完全可以自由地展开和强制施放.但请记住,感叹号的主要含义是"请让我崩溃!" 当你的假设结果出错时,你不会感到惊讶,而Swift就是你要求它做的事情.
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |