swift - 如何使我的排序功能真正在表格 View 中显示排序后的书籍

标签 swift realm dropdown

您好,尝试使用 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()
}

您定义了一个函数,但从未调用过它。

您可以:

  1. 调用函数
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/

    相关文章:

    swift - 多个 Realm 对象转为 JSON

    ios - 实例成员无法使用

    ios - Realm 是否支持模型版本?

    swift - 类没有初始化器错误 Realm 类 Swift

    react-native - react native 搜索下拉菜单

    javascript - InvalidPipeArgument : '[object Object]' for pipe 'AsyncPipe' , 无法修改 HTML

    mysql - Django - 从数据库创建一个下拉列表

    ios - swift : Set anchor Point on CABasicAnimation

    swift - 如何枚举 String 类型的枚举?

    swift - 时间计算和持续时间