我正在创建一个过滤语句来检查用户的firebase节点中是否有某个位置。
我正在使用的数组是
var users = [User]()
这是存储我所有用户的地方
我通过三种选择过滤它们:“firstLocation”,“secondLocation”和“thirdLocation”
我能够使用
成功过滤掉我的用户数组self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!)}
然后附加
self.users.append(user)
self.tableView.reloadData()
这基本上运行数组并过滤我的用户,他们的firstLocation firebase节点中有我的passLocation。现在问题来了,当我必须完成其他两个选择:“secondLocation”和“thirdLocation”
我试图通过使用像这样的“或”语句
来做到这一点self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!)} || self.users.filter{(($0.secondLocation?.contains(self.passedLocation!))!)}
但是我收到错误“无法使用类型为”
的参数列表调用'过滤器'所以我问的是,有没有办法可以检查字符串传递位置的所有三个位置,然后过滤我的用户,如果其中一个检查出现匹配
答案 0 :(得分:3)
您只需要一个过滤器内部带有“或”的过滤器。
self.users = self.users.filter{(($0.firstLocation?.contains(self.passedLocation!))!) || (($0.secondLocation?.contains(self.passedLocation!))!)}