7

I encounter some strange problem when I try to query all users from the "User" class It dos not find any Users

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);

            }
        }
    }

I tried replacing

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

with

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

and everything worked like i should. I think it must be something special about the "User" class

3
  • and what's the strange problem? Commented Oct 2, 2014 at 20:10
  • 2
    I think you should use "_User". Commented Oct 2, 2014 at 20:49
  • it works now after changing to "_User"! Commented Oct 2, 2014 at 20:54

4 Answers 4

25

User isn't the appropriate name for the User table. You need to use the following:

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

A more appropriate method is:

var query : PFQuery = PFUser.query()
Sign up to request clarification or add additional context in comments.

2 Comments

It seams better to use PFUser.query() rather than the string "_User" as it may change in the future, but the SDK will always return the correct query for user.
Thanks. I agree with you. I updated my answer. @foOg
6

You cannot query users like that. Instead you need:

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

See Parse documentation:

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

1 Comment

Looks like Parse updated the link - parse.com/docs/ios/guide#users-querying
0

I've been stuck on this part of code too. I was able to query users and their data with this code:

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

Comments

-1

try this ...

 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()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.