Ios Swift:如果PFObject=nil,则执行序列。
目前我已经在解析后端同步了用户及其数据。因此,我想做的是,如果用户没有声明他们的用户详细信息,则显示用户详细信息页面。因此,将有一个登录页面,它将引导您进入受保护页面(该页面将显示用户详细信息),如果没有要检索的详细信息,该页面将执行到用户详细信息页面的切换Ios Swift:如果PFObject=nil,则执行序列。,ios,swift,parse-platform,segue,pfobject,Ios,Swift,Parse Platform,Segue,Pfobject,目前我已经在解析后端同步了用户及其数据。因此,我想做的是,如果用户没有声明他们的用户详细信息,则显示用户详细信息页面。因此,将有一个登录页面,它将引导您进入受保护页面(该页面将显示用户详细信息),如果没有要检索的详细信息,该页面将执行到用户详细信息页面的切换 var query = PFQuery(className:"UserSettings") var CurrentUser = PFUser.currentUser() query.whereKey("user", equa
var query = PFQuery(className:"UserSettings")
var CurrentUser = PFUser.currentUser()
query.whereKey("user", equalTo: CurrentUser!)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if objects == nil {
self.performSegueWithIdentifier("fillUserDetails", sender: self)
}
但是,segue似乎没有执行,它仍保留在受保护页面上,而不是将新用户指向用户详细信息页面。如有任何帮助,我们将不胜感激 块在后台线程上执行。当您更新UI时,您应该在主线程上进行更新。尝试将
performsguewithidentifier
包装在如下块中:
var query = PFQuery(className:"UserSettings")
var CurrentUser = PFUser.currentUser()
query.whereKey("user", equalTo: CurrentUser!)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if objects == nil {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("fillUserDetails", sender: self)
}
}
添加对象大小检查和null,因为当请求中发生任何错误时,对象将为null,否则对象将不为null,但它可以有0个数据 斯威夫特-
if objects == nil || objects.size() == 0 {
self.performSegueWithIdentifier("fillUserDetails", sender: self)
}
当我尝试使用该代码时,会弹出一个错误:“找不到接受所提供语句的“| |”的重载”,并且我发现该问题仍然存在,除非我使用nil代替zero。再次说明。我尝试了objects.count==0而不是objects.size,结果成功了!你认为这种方法有什么可能的影响吗?@bantukatanaya | | |是或操作员试图在swift中设置。如果错误的对象不为null,则对象可能为null,因此objects.count可能会崩溃,因此为了获得更好的结果,请尝试使用Or运算符设置上述条件。Hi@bantukatanaya请尝试编辑代码。它在任何情况下都能工作。