【问题标题】:How to filter json data using search bar如何使用搜索栏过滤 json 数据
【发布时间】:2018-12-24 17:38:18
【问题描述】:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{

    searchBar.barTintColor = UIColor.white
    let lists:Array = searchCollectionList1 as Array
   // let searchPredicate = NSPredicate(format: "assetname CONTAINS[C] %@", searchText)
    let searchPredicate = searchFilter(searchName: searchText) 'Constant 'searchPredicate' inferred to have type '()', which may be unexpected'
    let array = (lists as NSArray).adding(searchPredicate)
    filteredDataItems = array

    DispatchQueue.main.async {
         self.collectionView.reloadData()
    }


}

【问题讨论】:

    标签: json swift filter uisearchbar


    【解决方案1】:

    不要使用NSPredicate,使用原生filter。

    range(of ... ) != nil 带有选项.caseInsensitive 与CONTAINS[C] 完全相同

    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
    {
    
        searchBar.barTintColor = UIColor.white
        filteredDataItems = searchCollectionList1.filter{ $0.assetname.range(of: searchText, options: .caseInsensitive) != nil }
        DispatchQueue.main.async {
            self.collectionView.reloadData()
        }
    }
    

    这假定searchCollectionList1 和filteredDataItems 是同一类型。

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2021-01-13
      • 2023-03-31
      • 2021-11-28
      相关资源
      最近更新 更多