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 结果是否为空。
我在 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 结果是否为空。