Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:如果PFObject=nil,则执行序列。_Ios_Swift_Parse Platform_Segue_Pfobject - Fatal编程技术网

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请尝试编辑代码。它在任何情况下都能工作。