2017-02-01 9 views
3

Я хочу реализовать функцию поиска в своем приложении, но я получаю данные от служб. У меня есть массив, как это в объектно картографакак фильтровать данные из класса mapper map

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() 
} 
+0

Вы хотите фильтровать массив страны - '[Страна]'? –

+0

Да, я хочу фильтровать весь массив @NiravD –

+0

Тогда это просто 'let filter = countries.filter {$ 0.countryName.lowercaseString.containsString (self.searchController.searchBar.text! .lowercaseString)}' –

ответ

1

Вы можете фильтровать массив, как таким образом.

let filter = countries.filter { $0.countryName.lowercaseString.containsString(self.searchCon‌​troller.searchBar.te‌​xt!.lowercaseString) } 
self.resultController.tableView.reloadData() 
Смежные вопросы