【问题标题】:Parse email verification error with Swift 2使用 Swift 2 解析电子邮件验证错误
【发布时间】:2015-10-28 03:04:25
【问题描述】:

您好,我正在尝试使用 parse 验证用户电子邮件,我在整个网络上搜索了几个小时,但一无所获。解析的其他一切都很好!但是当我尝试检查电子邮件验证是否为真时,我收到此错误:

致命错误:在展开可选值时意外发现 nil

基本上我想先检查一下,以便我可以更改为不同的 viewController,我现在使用的代码是这样的......

if user.objectForKey("emailVerified")!.boolValue == true
{
    performSegueWithIdentifier("tarjetaCredito",sender: self)
}

我尝试了所有类型的代码,但总是遇到同样的错误,有什么帮助吗?我正在使用 Xcode 7.0 beta 6

【问题讨论】:

    标签: ios parse-platform swift2


    【解决方案1】:

    当你在 Swift 中看到“unexpectedly found nil”时,你可以把它追溯到一个感叹号。 (无论是简单的!as!try!,感叹号本质上是说,“嘿编译器,我知道你认为这里可能会发生错误,但我知道 它永远不会真正发生,所以不要强迫我处理错误情况。”)

    在您的代码中,! 就在这里:

    if user.objectForKey("emailVerified")!.boolValue == true
                                         ⬆︎
    

    ...这意味着表达式user.objectForKey("emailVerified") 的结果必须为零。弄清楚为什么这个表达式是 nil,你就会得到答案。

    如果user 是一个字典,那么键"emailVerified" 可能没有值,并且可能您使用了错误的键字符串。 (顺便说一句:你可以改成user["emailVerified"],这取决于user 的类型。)

    无论是什么原因,在崩溃前打印出一行user 的值可能会帮助您诊断问题:

    print("----------> user = ", user) 
    if user.objectForKey("emailVerified")!.boolValue == true
    ...
    

    一般来说,在 Swift 中避免使用! 通常是一种很好的做法——或者至少仔细考虑一下使用它的原因。如果您确定有时该表达式的值为 nil 是有效的——例如,如果电子邮件尚未验证,则它可能为 nil——那么您可以改用 ?;例如:

    if user.objectForKey("emailVerified")?.boolValue == true
    

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多