PFQuery возвращает пустой запрос - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь запустить 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")
}

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Как упомянул @William George в подразделе Запросы пользователей , вы можете увидеть, как построить запрос для класса _User.

A Ниже приведен пример этого (снято прямо с документов):

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

Вы можете запросить сервер Parse с помощью PFUser, как и с PFQuery, но он может использоваться только для класса _User.

0 голосов
/ 15 марта 2019

Выяснил в чем проблема!

Для тех, кто сталкивается с подобными проблемами в будущем, при определении класса, который вы хотите запросить, вам нужно выйти _ впереди. В приведенном выше случае это будет let query = PFQuery(className:"_User").

Странно, поскольку я нигде не видел, чтобы это упоминалось в документации разбора.

...