【问题标题】:How to sort an array of dictionary with a searchbar如何使用搜索栏对字典数组进行排序
【发布时间】:2019-07-29 17:49:08
【问题描述】:

我试图只显示与搜索栏文本具有相同标题的单元格。我以为我有一些方法,但它们似乎都不起作用。

方法一:

func Search() {
    Aanbiedingen_bieren_Filter = Aanbiedingen_bieren_Filter.filter {SearchBar.text!.lowercased() == $0.Title.lowercased() }
    tableView.reloadData()
}

方法二:

func Search() {
    for Json in Aanbiedingen_bieren_Filter {
          let Naam = Json.Title.lowercased()
          if SearchBar.text!.lowercased().contains(Naam) {
               Aanbiedingen_bieren_Filter.append(Json)
          }
     }
     tableView.reloadData
}

当 Searchbar 文本改变时运行 Search()

func searchBarSearchButtonClicked(_ SearchBar: UISearchBar) {
    Search()
}

func searchBar(_ SearchBar: UISearchBar, textDidChange searchText: String) {
    Search()
}

结构:

struct SheetJS: Codable {
    var SheetJS: [Aanbiedingen_bier]

    init(SheetJS: [Aanbiedingen_bier]) {
        self.SheetJS = SheetJS
    }
}

struct Aanbiedingen_bier: Codable {
    let Title: String

    init(Title: String) {
        self.Title = Title     
    }
}

json:

"SheetJS": [
    {
      "Logo_Image": "Grolsch Premium Pilsener"
     },//Some more data
  ]

当我运行这段代码时,它会给我一个空的Aanbiedingen_bier_Filter。我不确定这是为什么。

【问题讨论】:

    标签: arrays swift sorting dictionary


    【解决方案1】:

    你的测试都不是你想要的:

    SearchBar.text!.lowercased().contains(Naam)
    
    SearchBar.text!.lowercased() == $0.Title.lowercased
    

    您想知道的是标题是否包含搜索文本,而不是相反,或者它们是否相同(不太可能)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      相关资源
      最近更新 更多