我想弄清楚的是如何只显示满足用户以前保存在不同ViewController上的设置要求的用户。好的,那么在设置时,当前用户已经选择了他们的流派和乐器,并将其作为字符串保存在Parse中称为“流派”和“乐器”的列中。然后在“搜索设置”页面上,用户选择要搜索的类型为“摇滚”,乐器为“原声吉他”。然后在“genreSearch”和“instrumentSearch”列下添加这两个元素进行解析。
所以我知道我需要进行一个查询,并将其显示在用户显示的ViewController上,但我不知道如何显示。我试图将其他用户的“流派”栏与当前用户的“流派研究”栏进行交叉引用。我想应该是这样的:

genreQuery.whereKey("username",notEqualTo:PFUser.currentUser()!.username!)
genreQuery.whereKey("genre", notEqualTo:PFUser.currentUser()!username!)
genreQuery.whereKey("genreSearch", equalTo:PFUser.currentUser()!)
genreQuery.findObjectsInBackgroundWithBlock { (users: [AnyObject]?,
error: NSError?) -> Void in

if error == nil {
    for user in users! {

        if self.genre == self.genreSearch {

            print("These two strings are considered equal")

            appUsers.append(user as! PFUser)

        }
    self.resultsPageTableView.reloadData()`

在我的VC顶部,我存储并显示了一个单元格中的所有用户,该单元格还链接到另一个VC以显示更多详细信息。
var genre = [String]()
var genreSearch = [String]()
var appUsers = [PFUser]()

我读过Parse文档,老实说,现在我更困惑的是该去哪里。
我在网上搜索了几天,都是js和objc,我在这两方面都没有经验。如果有人能从一开始就指点我,甚至指导我做什么,这样我就能学会。
在单元格中,我显示用户的详细信息,如下所示:
 let singleCell: CustomCell = tableView.dequeueReusableCellWithIdentifier("mySingleCellid") as! CustomCell

 let userObject = appUsers[indexPath.row] as PFObject

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

最佳答案

查询的这一部分

genreQuery.whereKey("genreSearch", equalTo:PFUser.currentUser()!)

是错误的,因为您正在尝试检查字符串数组是否包含一个用户对象(指针),该对象将始终失败。
当您为当前用户在服务器上进行genreSearch时,更容易用
genreQuery.whereKey("genreSearch", containedIn:PFUser.currentUser()!["genreSearch"])

它要求测试的每个用户上的genreSearch数组至少包含genreSearch的当前用户数组中的一个

关于ios - 解析中的交叉引用列决定要在 View Controller 上显示哪些用户。快速的用户搜索设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33587178/

10-12 14:38
查看更多