2017-04-24 60 views
0

我在Swift中有一个基于返回对象的PFQuery函数。如果错误== nil,如果对象!= nil,并且如果错误==无& & objects!= nil,但它总是就好像关键字“otherUser”和“respond”是平等的。虽然“请求”和“响应”等级中的“其他用户”没有在“请求”中找到,但等于“假”。 (我缩短了实际的全长查询,因为它太长了)。Swift错误阅读PFQuery返回

let query = PFQuery(className: "Requests") 
     query.whereKey("otherUser", equalTo: PFUser.currentUser()!.objectForKey("username") as! String) 
     query.whereKey("responded", equalTo: "True") 
     query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 
      if error == nil && objects != nil{ 
       print(objects) 
       print("disabling confirm button") 
       self.stopTime = self.defaults.integerForKey("intKey") 
      }else{ 
       print("Did not respond yet.") 
       self.counter = 1200 
       self.storyboard 
      } 
     }) 
} 
+0

你应该比较'回应'字符串,而不是布尔? 另外,这个查询不应该返回'object == nil',除非'error!= nil'。如果找不到与此查询匹配的对象,则应该返回一个空数组,而不是nil。那可能是什么情况? –

回答

0

即使otherUser找不到或responded是假,query仍然不会返回错误,并objects将只是一个空数组。而一个空的数组不是零,它存在于堆中。

所以只要你做的都是正确的,即使查询不符合你的约束,它仍然会返回一个空数组而不是错误。

如果您想检查查询是否已返回任何结果,则可以使用if (objects.count)来检查返回的结果是否为空。

+0

谢谢你的工作 – Dups