Swift 错误读取 PFQuery Return

Swift Wrongly Reading PFQuery Return

我在 Swift 中有 PFQuery 函数,它应该根据返回的对象进行操作。我试过 if error == nil,if objects != nil 和 if error == nil && objects != nil,但它总是表现得好像键 "otherUser" 和 "responded" 等于什么查询请求,虽然 "otherUser" 未在 class "Requests" 中找到并且 "responded" 等于 "False"。 (我缩短了实际的全长查询,因为它太长了)。

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
            }
        })
}

即使 otherUser 未找到或 responded 为 False,query 仍然不会 return 错误,并且 objects 只是一个空大批。而空数组并不是nil,它存在于堆中。

因此,只要您做的一切都正确,即使查询不符合您的约束条件,它仍然return是一个空数组而不是错误。

如果要检查查询是否有 returned 任何结果,可以使用 if (objects.count) 检查 returned 结果是否为空。