【问题标题】:iOS How to fetch value "Boolean" from parse Swift 4iOS如何从解析Swift 4中获取值“布尔”
【发布时间】:2018-04-12 06:35:27
【问题描述】:

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

  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)")
            }
        }

我有错误:

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

更新:

所以在我的表中我的值是“false”

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

【问题讨论】:

  • 你能打印user
  • 你从用户那里得到 Int!["emailVerified"]?
  • 是的,我收到 emailVerified = 0; Int,但我喜欢 Int 获取
  • @Andrew 请找到我的答案

标签: ios swift parse-platform fetch


【解决方案1】:

您也可以为通用术语实现以下扩展,

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)

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

【讨论】:

  • 它的工作并不理想,因为在表中我的值为 false,但我获取的值为 true
  • 究竟是什么问题?
  • @PLL 在上面我写了,有什么问题
  • 你能打印这个吗? user!["emailVerified"],是 0 还是 1?
  • emailVerified = 0;
【解决方案2】:

用途:

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

【讨论】:

  • 无法使用“(Any!)”类型的参数列表调用“Bool”类型的初始化程序
猜你喜欢
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
相关资源
最近更新 更多