PFQuery 返回空白查询

PFQuery returning blank query

我正在尝试 运行 将填充自定义结构数组的 PFQuery。

一切看起来都很好,但是当我 运行 代码查询 returned 是空的。我还使用 PFUser.Query 尝试了此操作,但它没有 return objectId 的值,因此尝试改为查询 class。

这是我的资料:

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

找到问题所在了!

以后遇到类似问题的朋友,在确定要查询的class时,需要在前面out _。在上面的例子中,它将是 let query = PFQuery(className:"_User").

奇怪,因为我在任何地方的解析文档中都看不到这一点。

如@William George 在 Querying subsection of Users 中所述,您可以了解如何在 _User class.

上构建查询

A 下面是一个示例(直接从文档中提取):

var query = PFUser.query()
query.whereKey("gender", equalTo:"female")
var girls = query.findObjects()

您可以使用 PFUser 查询您的 Parse Server,就像使用 PFQuery 一样,但它只能在 _User class.

上使用