是否可以根据结果使用多个过滤器?
我想根据他们的名字过滤大学课程列表,并检查过滤课程列表是否为>如果没有,我会自动获取它们。
这就是我现在所做的,给用户一个按钮,以显示所有视图是否为空:
override func viewDidLoad() {
if let courseName = GetCourseName(){
let predicate = NSPredicate(format: "name contains %@", courseName)
courses = try! RealmManager.realm().objects(Course.self).filter(predicate).sorted("name")
token = try! RealmManager.realm().objects(Course.self).filter(predicate).addNotificationBlock({ changes in
self.tableView.reloadData()
})
self.navigationItem.rightBarButtonItems = [UIBarButtonItem(title: "Show all", style: .Plain, target: self, action: #selector(showAll(_:)))]
}else{
courses = try! RealmManager.realm().objects(Course.self).sorted("name")
token = try! RealmManager.realm().objects(Course.self).addNotificationBlock({ changes in
self.tableView.reloadData()
})
}
}
func showAll(sender:AnyObject)
{
courses = try! RealmManager.realm().objects(Course.self).sorted("name")
token = try! RealmManager.realm().objects(Course.self).addNotificationBlock({ changes in
self.tableView.reloadData()
})
self.navigationItem.rightBarButtonItems?.removeAll()
}
答案 0 :(得分:1)
听起来这样的事情应该有效。基本上,如果有课程名称,请将课程设置为过滤结果。然后,如果课程为零或空,请将其设置为显示全部。
override func viewDidLoad() {
if let courseName = GetCourseName(){
let predicate = NSPredicate(format: "name contains %@", courseName)
courses = try! RealmManager.realm().objects(Course.self).filter(predicate).sorted("name")
}
if course == nil || course.isEmpty {
courses = try! RealmManager.realm().objects(Course.self).sorted("name")
}
token = courses.addNotificationBlock({ changes in
self.tableView.reloadData()
})
}