0
それらの結果に基づいて使用される複数のフィルタを使用することは可能ですか?iOS分野if else文に基づく複数のフィルタ
名前に基づいて大学のコースのリストをフィルタリングし、フィルタされたコースのリストが> 0であるかどうかをチェックしたいと思います。
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()
}
解決策を使用しました。しかし、私はすべてをトークンブロックに入れます。これは、ユーザーがビューにナビゲートするたびに新しいデータを取得するためです。 course == nilは、viewDidLoadメソッドでは常にtrueです。 –