![](/img/trans.png)
[英]Unable to update UILabel using dispatch_async method in swift iOS
[英]Issue with Optionals in Swift when using dispatch_async()
嘿伙计们,我对Swift非常缺乏经验,所以我确信这个问题来自于我对语法的天真。 一般情况下,我试图从Parse检索数据并将结果读入NSArray
。 但是,我收到以下错误:
致命错误:在展开Optional值时意外发现nil
我已将其缩小到函数失败的代码中的此部分。 我在self.userData = res
行之后得到错误。 我确信我正在解释所述的零值,但不知道如何解决它。 如果我做了像var res = query!.findObjects()?
这样的事情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()
}
}
}
它更可能是这些行之一:
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")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.