Divine Davis
Divine Davis

Reputation: 552

Query for Parse is not working

This is giving me an error. I have attached a screenshot of what the error looks like. enter image description here

class UserTableViewController: UITableViewController {
    var users = [""]

    override func viewDidLoad() {
        super.viewDidLoad()

        //Printing the currentUser name
        print(PFUser.currentUser()!)

        var query = PFUser.query()

        query!.findObjectsInBackgroundWithBlock({ (objects : [AnyObject]!, error : NSError!) -> Void in
            self.users.removeAll(keepCapacity : true)

            for object in objects {
                var user : PFUser = object as PFUser

                self.users.append(user.username)
            }
        })
    }

Upvotes: 0

Views: 32

Answers (1)

Swinny89
Swinny89

Reputation: 7373

The issue seems to be how you are declaring your users array. Try this.

class UserTableViewController: UITableViewController {
    var users = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        //Printing the currentUser name
        print(PFUser.currentUser()!)

        var query = PFUser.query()

        query!.findObjectsInBackgroundWithBlock({ (objects : [AnyObject]!, error : NSError!) -> Void in
            self.users = [String]()

            if let parseUsers = objects as? [PFUser] {
                for u in parseUsers {
                    //parseUsers is now an array of PFUser
                    self.users.append(u.username)
                }
            } 
        })
    }

Also you cannot cast your users like that. Try this:

if let parseUsers = objects as? [PFUser] {
    //parseUsers is now an array of PFUser
}

Upvotes: 2

Related Questions