嘿伙计们我对Swift非常缺乏经验,所以我确信这个问题来自于我对语法的天真。一般来说,我试图从Parse检索数据并将结果读入NSArray
。但是,我收到以下错误:
致命错误:在解包可选值时意外发现nil
我已在函数失败的代码中将其缩小到此部分。我在self.userData = res
行之后收到错误。我确信我正在解释所述的零值,但不知道如何解决它。如果我执行var res = query!.findObjects()?
之类的操作来使findObjects成为可选项,那么我会遇到编译器错误。只是有点卡住,任何有用的东西。
func getUserInfo() {
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
let user = PFUser.currentUser()
var query = PFUser.query()
query!.whereKey("username", equalTo: self.username)
var res = query!.findObjects()!
dispatch_async(dispatch_get_main_queue()) {
self.userData = res
self.tableView.reloadData()
}
}
}
答案 0 :(得分:3)
更有可能成为其中一条线:
query!.whereKey("username", equalTo: self.username)
var res = query!.findObjects()!
这些是解开Optional
值的行。
请改为尝试:
if let unwrappedQuery = query {
unwrappedQuery.whereKey("username", equalTo: self.username)
if let result = query.findObjects() {
dispatch_async(dispatch_get_main_queue()) {
self.userData = result
self.tableView.reloadData()
}
} else {
println("query.findObjects returned nil")
}
} else {
println("query was nil")
}