2017-02-01 6 views
3

내 앱에서 검색 기능을 구현하려고하지만 서비스에서 데이터를 가져옵니다. 나는이 작업을 수행하는 방법에 검색 기능에 대한 내 데이터를 필터링 할 여기에서 객체 매퍼개체 매퍼 클래스에서 데이터를 필터링하는 방법

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()