使用变量作为 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 做任何事情我一定是错过了一步!!!
用户中的变量 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 做任何事情我一定是错过了一步!!!