如何从对象映射器类中过滤数据

时间:2017-02-01 05:59:14

标签: swift uisearchbar uisearchcontroller objectmapper

我想在我的应用中实现搜索功能,但我从服务中获取数据。我在对象映射器中有这样的数组

class Country : Mappable {

var countryName:String = ""
var countryID:Int = 0
var countryImage:String = ""
var countryColor:String = ""

required init?(_ map: Map) {

}
func mapping(map: Map) {

    countryID           <- map["id"]
    countryName         <- map["name"]
    countryColor        <- map["color"]
    countryImage        <- map["image"]
}
}

从这里开始我想过滤搜索功能的数据如何做到这一点。

这里我只过滤国家名称但我想过滤整个数组我怎么做

func updateSearchResultsForSearchController(searchController: UISearchController) {

    self.filteredData = self.countryNames.filter { (country:String) -> Bool in
        if country.lowercaseString.containsString(self.searchController.searchBar.text!.lowercaseString) {
            return true
        } else {
            return false
        }
    }
    print(filteredData)
    // update results table view

    self.resultController.tableView.reloadData()
}

1 个答案:

答案 0 :(得分:1)

您可以这样过滤数组。

let filter = countries.filter { $0.countryName.lowercaseString.containsString(self.searchCon‌​troller.searchBar.te‌​xt!.lowercaseString) }
self.resultController.tableView.reloadData()