Parse.com запрашивает класс пользователя (быстро)

Я сталкиваюсь с какой-то странной проблемой, когда пытаюсь запросить всех пользователей из класса «Пользователь». Он не находит пользователей.

var query:PFQuery=PFQuery(className: "User");
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if !(error != nil) {
            for(var i=0;i<objects.count;i++){
                var object=objects[i] as PFObject;
                var name = object.objectForKey("username") as String;
                println(name);

            }
        }
    }

Я попытался заменить

 var query:PFQuery=PFQuery(className: "User");

с

var query:PFQuery=PFQuery(className: "AnotherClass");

и все работало как я должен. Я думаю, что это должно быть что-то особенное в классе «Пользователь».


person tim_yng    schedule 02.10.2014    source источник
comment
а в чем странная проблема?   -  person Antonio    schedule 03.10.2014
comment
Я думаю, вы должны использовать _User.   -  person Diego    schedule 03.10.2014
comment
теперь он работает после изменения на _User!   -  person tim_yng    schedule 03.10.2014


Ответы (4)


User не является подходящим именем для таблицы User. Вам необходимо использовать следующее:

var query : PFQuery = PFQuery(className: "_User")

Более подходящий метод:

var query : PFQuery = PFUser.query()
person Dehli    schedule 02.10.2014
comment
Кажется, лучше использовать PFUser.query(), а не строку _User, поскольку она может измениться в будущем, но SDK всегда будет возвращать правильный запрос для пользователя. - person foOg; 24.02.2015
comment
Спасибо. Я согласен. Я обновил свой ответ. @foOg - person Dehli; 24.02.2015

Вы не можете опрашивать пользователей таким образом. Вместо этого вам нужно:

var findUsers:PFQuery = PFUser.query();
findUsers.whereKey("username",  equalTo: searchText.text)

См. документацию по разбору:

https://parse.com/docs/ios_guide#users-querying/iOS

person Tys    schedule 30.10.2014
comment
Похоже, Parse обновил ссылку — parse.com/docs/ios/guide#users-querying - person Pete Varley; 07.02.2016

Я тоже застрял в этой части кода. Я смог запросить пользователей и их данные с помощью этого кода:

    var usernames = [String]()
    var userImages = [Data]()

    var query : PFQuery = PFUser.query()!
                    // Interested in locations near user.
                    query.whereKey("location", nearGeoPoint: geopoint!)
                    // Limit what could be a lot of points.
                    query.limit = 10
                    do {
                        let queryObjects = try query.findObjects()
                        for object in queryObjects {
                            self.usernames.append(object["username"] as! String)
                            self.userImages.append(object["image"] as! Data)
                        }
                    } catch {
                        print("Error")
                    }
person Daewizal Forshizal    schedule 22.03.2018

попробуй это ...

 var ObjectIDQuery = PFQuery (className: "User")
    ObjectIDQuery.findObjectsInBackgroundWithBlock({
        (objectsArray : [AnyObject]?, error: NSError?) -> Void in



        var objectIDs = objectsArray as! [PFObject]

        NSLog("\(objectIDs)")

        for i in 0...objectIDs.count-1{
            self.NameArray.append(objectIDs[i].valueForKey("username")as!  String)


            self.iDArry.append(objectIDs[i].valueForKey("objectId") as!  String)

            self.tableView.reloadData()
person DiAb Syr    schedule 25.07.2015