有什么方法可以避免"?"标记在Swift中一次又一次地展开?

时间:2016-04-07 07:55:22

标签: ios swift swift2.2

我们使用"?"将变量定义为可选,例如:

var name : String? 

然后在整个程序中我们使用"?"获取变量名称值,例如:

print (name?)

无论如何我们可以摆脱"?"每次展开可选变量时。

2 个答案:

答案 0 :(得分:2)

您需要使用conditional binding来避免它。

例如:

var name : String?
name = "Hello world"

if let unwrappedName = name as? String
{
   // Now unwrappedName isn't optional
}

基本上,unwrappedName将是String AKA不是可选的。

但它真的取决于你想要实现的目标,如果你确定name永远不会是零,我建议使用隐式解包:

var name : String!

但是使用隐式解包建议名称可能为nil,因此需要再次检查条件绑定 - 这一切都取决于你对变量永远不会是nil的肯定程度。

答案 1 :(得分:1)

您应该使用if letguard let打开可选项。