我试图检查是否有一个用户,如果他们已经验证了他们的帐户(通过电话号码),如果有,他们已经让他们继续,但如果有一个用户没有验证他们的电话号码,请他们验证他们的电话号码。我的问题是,我在Parse User类中将“phoneNumberValidated”设置为Bool,但随后尝试使用if语句进行检查,我得到错误:二进制运算符“==”不能应用于“AnyObject!”类型的操作数还有“布尔”
检查用户和验证状态的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    var currentUser = PFUser.currentUser()

    if currentUser == nil || currentUser!["phoneNumberVerified"] == nil {

        performSegueWithIdentifier("showInitialView", sender: self)

    } else {

        if let numberIsVerified = currentUser!["phoneNumberVerified"] as? Bool {

            if currentUser != nil && numberIsVerified == false {
                performSegueWithIdentifier("showVerifyUserView", sender: self)

            } else if currentUser != nil && numberIsVerified == true {
                performSegueWithIdentifier("showMyPostsView", sender: self)

            } else {
                performSegueWithIdentifier("showInitialView", sender: self)
            }
        }
    }
}

}

最佳答案

我觉得你应该试着把它贬为笨蛋

override func viewDidLoad() {
    super.viewDidLoad()

    if let currentUser = PFUser.currentUser() {

        if let numberIsVerified = currentUser["phoneNumberVerified"] as? Bool {

            if numberIsVerified == false {
                performSegueWithIdentifier("showVerifyUserView", sender: self)

            } else if numberIsVerified == true {
                performSegueWithIdentifier("showMyPostsView", sender: self)

            } else {
                performSegueWithIdentifier("showInitialView", sender: self)
            }
        }
    }
}

关于ios - 在Bool上使用'=='检查用户验证会在Swift和Parse中引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34366897/

10-12 14:36
查看更多