使用变量作为PFQuery的关键字来筛选用户.Swift查询用户



User类中的变量作为字符串。使用这个变量作为PFQuery的键,并使用它来筛选出没有它的用户。我需要跳过没有它的人,并将有它的人添加到VC显示中。这是我迄今为止的代码:在存储变量的VC中,我有:

var genreSearch: NSString?

查看后DidLoad在一个单元格中我有:

    let genreSearch = table_data[indexPath.row]
    userDefaults.setObject(genreSearch, forKey: "genre")
    print(genreSearch)`

然后在调用查询的VC上,我有:

    if let genreSearch = userDefaults.objectForKey("genre") as? [String] {
        // do something here when a genresearch exists
        let genreQuery = PFUser.query()
        genreQuery!.whereKey("genre", containedIn: (genreSearch as [String]))
        genreQuery!.findObjectsInBackgroundWithBlock { (users: [AnyObject]?, error: NSError?) -> Void in

            if error == nil {
                // success

                for user in users! {
                    self.appUsers.append(user as! PFUser)
                } // users

                self.resultsPageTableView.reloadData()
            } // error
            else {
        }
        }
    }

如果有任何帮助,我将不胜感激。我已经被困在这个genreSearch查询上好几个星期了!!!

这里还有我在VC2上的代码,它正在更新单元格中的用户信息:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let singleCell: CustomCell = tableView.dequeueReusableCellWithIdentifier("mySingleCellid") as! CustomCell
    let userObject = appUsers[indexPath.row] as PFObject

    singleCell.userName.text = userObject["name"] as? String

所以我已经编辑了我的代码,因为我发现了被调用的错误*我可以打开VC,但它不会过滤掉结果?它显示所有用户,而不是跳过没有选择流派的用户。有什么想法吗*

如果您试图对parse提供的User表进行查询,则应使用而不是let genreQuery = PFQuery(className: "_User")

let genreQuery = PFUser.query()

终于弄清楚了为什么它没有过滤掉我的用户!!!

在存储变量的VC上,我错过了类上方的一条重要线:

var genreSearch: String?
let userDefaults = NSUserDefaults.standardUserDefaults()  //this one

然后在结果VC中,我添加了:

if let genre = userDefaults.stringForKey("genre")  //this line
    {
        print(genre)
        let genreQuery = PFUser.query()

        genreQuery?.whereKey("username",notEqualTo:PFUser.currentUser()!.username!)
        genreQuery!.whereKey("genre", equalTo: genre)                    
genreQuery!.findObjectsInBackgroundWithBlock { (genres: [AnyObject]?, error: NSError?) -> Void in
                if error == nil {
                // success
                self.appUsers.removeAll()
                for genre in genres! {
                  self.appUsers.append(genre as! PFUser)
                } // users
                  }
                self.resultsPageTableView.reloadData()
                self.refresher.endRefreshing()
            } // error   

我想它只是没有保存或使用VC1上的userDefaults做任何事情,我一定错过了一步!!!

最新更新