使用变量作为 PFQuery 的键来过滤用户。 Swift 查询用户

Using a variable as a key for a PFQuery to filter out users. Swift Querying a User

用户中的变量 class 作为字符串。使用此变量作为 PFQuery 的键并使用它来过滤掉没有 it.I 的用户需要跳过没有它的用​​户并将有的用户添加到 VC展示。到目前为止,这是我的代码: 在存储变量的 VC 中,我有:

var genreSearch: NSString?

在单元格中的 viewDidLoad 之后我有:

    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 {
        }

        }
    }

如能提供任何帮助,我将不胜感激 我一直坚持使用这种类型的搜索查询已经有好几周了!!!

此外,这是我在 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 提供的用户 table 进行查询,您应该使用 let genreQuery = PFQuery(className: "_User")

而不是
let genreQuery = PFUser.query()

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

在存储变量的 VC 上,我缺少 class 上方的重要行:

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 做任何事情我一定是错过了一步!!!