iOS如何获取值"布尔"从解析Swift 4

时间:2018-04-12 06:35:27

标签: ios swift parse-platform fetch

我构建应用,我需要检查用户是否验证了电子邮件。 我获取数据的代码:

  let query:PFQuery = PFQuery(className: "_User");
        query.whereKey("objectId", equalTo: PFUser.current()!.objectId!)
        query.findObjectsInBackground { (object, error) in
            if !(error != nil) {
                let user = PFUser.current()
                let emailVerified = user!["emailVerified"] as! Bool
                print("emailVerified \(emailVerified)")
            }
        }

我有错误:

enter image description here

线程1:致命错误:在解包可选值时意外发现nil

更新

所以在我的表中我有价值"假" enter image description here

当代码在控制台中运行时,我会收到值" true"

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以在以下扩展名中实现通用术语

extension Integer {
    var boolValue: Bool { return self != 0 }
}

然后像这样使用它,

let success = user!["emailVerified"].boolValue

<强>更新

你也可以这样做,

let success = (user!["emailVerified"] as NSNumber).boolValue

另一种选择就是这样,

extension Bool {    
    init(_ number: Int) {
        self.init(number as NSNumber)
    }
}

并且像这样,

let success = Bool(user!["emailVerified"] as NSNumber)

尝试一下,如果有任何疑问,请告诉我。

答案 1 :(得分:0)

使用:

if let isVerify = user!["emailVerified"] as? NSNumber {
    let emailVerified = isVerify.boolValue
}