2017-02-01 2 views
3

Je souhaite implémenter la fonctionnalité de recherche dans mon application, mais j'obtiens des données des services. J'ai un tableau comme celui-ci dans l'objet mappeurcomment filtrer les données de la classe de mappeur d'objets

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"] 
} 
} 

d'ici que je veux filtrer mes données pour la fonctionnalité de recherche comment faire cela.

ici, je suis filtrent uniquement les noms de pays, mais je veux filtrer tableau entier comment je peux faire

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

Vous voulez dire que vous voulez filtrer le tableau de pays - '[Pays]'? –

+0

ouais je veux filtrer le tableau entier @NiravD –

+0

Ensuite, il est simplement 'let filter = countries.filter {$ 0.countryName.lowercaseString.containsString (self.searchController.searchBar.text! .lowercaseString)}' –

Répondre

1

Vous pouvez filtrer votre tableau comme cette façon.

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