无法打开Optional.None

时间:2014-07-06 10:19:35

标签: swift

我尝试访问一个属性:

let ejh = userInfo.firstName;

但是我收到了这个错误:

fatal error: Can't unwrap Optional.None

为什么?

userInfo的类型为CKDiscoveredUserInfo!

3 个答案:

答案 0 :(得分:1)

这有很多答案,例如here

userInfo(您没有显示其定义)可能是一个可选值(即可能是nil)。请改用:

if let ejh = userInfo.firstName {
    println("Got it!\(ejh)")
} else {
    println("nil")
}

答案 1 :(得分:1)

这是因为userInfo.firstName的值是可选的,可以是nil。 你需要打开它。 如果您确定有值,可以使用强制解包:

let ejh = userInfo.firstName!

但如果您不确定是否有价值用途:

if let ejh = userInfo.firstName {
    // use ejh here
}

获得价值的另一种方法是:

let ejh = userInfo?.firstName;

如果userInfo有一个或者它给你nil,那么这给你值。

答案 2 :(得分:1)

行应为let ejh = userInfo.firstName?,因为firstName可能为零值