您好,尝试使用 CocoaPods Dropdown 创建一个排序按钮,代码没有显示任何错误,菜单也可以工作,但如果我单击该按钮,则什么也没有发生。
dropDown.selectionAction = { [weak self] (index: Int, item: String) in //8
guard let _ = self else { return }
sender.setTitle(item, for: .normal) //9
let realm = try! Realm()
var books = realm.objects(Book.self).sorted(byKeyPath: "title", ascending: false)
if item == "sort by author" {
func filterResultsbyauthor(searchString: String){
let predicate = NSPredicate(format: "author BEGINSWITH [c]%@", searchString)
books = realm.objects(Book.self).filter(predicate).sorted(byKeyPath:"author", ascending: true)
self?.tableview.reloadData()
}
}
}
最佳答案
错误可能在这里:
func filterResultsbyauthor(searchString: String){
let predicate = NSPredicate(format: "author BEGINSWITH [c]%@", searchString)
books = realm.objects(Book.self).filter(predicate).sorted(byKeyPath:"author", ascending: true)
self?.tableview.reloadData()
}
您定义了一个函数,但从未调用过它。
您可以:
- 调用函数
func filterResultsbyauthor(searchString: String){
let predicate = NSPredicate(format: "author BEGINSWITH [c]%@", searchString)
books = realm.objects(Book.self).filter(predicate).sorted(byKeyPath:"author", ascending: true)
self?.tableview.reloadData()
}
filterResultsbyauthor(searchString: "Your search string") /// here!
- 删除函数声明并使其成为一段代码
let predicate = NSPredicate(format: "author BEGINSWITH [c]%@", "Your search string")
books = realm.objects(Book.self).filter(predicate).sorted(byKeyPath:"author", ascending: true)
self?.tableview.reloadData()
关于swift - 如何使我的排序功能真正在表格 View 中显示排序后的书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68550019/