iOS如何从解析Swift 4中获取值“布尔”
Posted
技术标签:
【中文标题】iOS如何从解析Swift 4中获取值“布尔”【英文标题】:iOS How to fetch value "Boolean" from parse 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 请找到我的答案
【参考方案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”类型的初始化程序以上是关于iOS如何从解析Swift 4中获取值“布尔”的主要内容,如果未能解决你的问题,请参考以下文章
如何在 func swift 4 中编写关于比较布尔值的 func