我正在尝试运行一个PFQuery,它将填充一系列自定义结构。
一切看起来都不错,但是当我运行代码时,返回的查询为空。我也尝试使用PFUser.Query,但是没有为objectId返回值,所以尝试查询该类。
这是我有的:
var parseUsers:[ParseUsers] = []
var allUsers:[PFObject] = []
let query = PFQuery(className:"User")
let currentUser = PFUser.current()
query.whereKey("username", notEqualTo: currentUser?.username)
do {
allUsers = try (query.findObjects())
for i in allUsers{
var pImage = UIImage()
if i["profileImage"] != nil{
let imageFile = i["profileImage"] as? PFFileObject
imageFile?.getDataInBackground { (imageData: Data?, error: Error?) in
if let error = error {
print(error.localizedDescription)
} else if let imageData = imageData {
pImage = UIImage(data:imageData)!
}
}
}
let currentUserInfo = ParseUsers(objectID:i["objectId"] as! String,
username:i["objectId"] as! String,
userWorkouts:i["userWorkouts"] as! [Dictionary<String, String>],
profileImage:pImage)
parseUsers.append(currentUserInfo)
}
} catch {
print("Error")
}
发现问题是什么!
对于将来遇到类似问题的任何人,在确定要查询的课程时,您需要在前面输出_。在上面的情况下,它将是let query = PFQuery(className:"_User")
。
很奇怪,因为我无法在任何地方的解析文档中看到这一点。
正如@William George在Querying subsection of Users中所提到的,你可以看到如何在_User
类上构建查询。
以下是此示例(直接从文档中解除):
var query = PFUser.query()
query.whereKey("gender", equalTo:"female")
var girls = query.findObjects()
您可以使用PFUser
查询您的Parse服务器,就像PFQuery
一样,但它只能用于_User
类。