2016-04-28 19 views
2

次のコードを使用して、アプリケーション内のtableviewcontrollerを検索します。 現在の検索文字列は、テーブルリストのレストラン名と一致します。追加の文字列、場所を自分のコードと一致/検索したい。どのように私はこの機能に場所を追加することができます迅速なフィルタメソッドの第2パラメータ2.0

レストラン名変数 - restaurant.name、
レストランの場所変数 - restaurant.location

func filterContentForSearchText(searchText: String) { 
     searchResults = restaurants.filter({ (restaurant: Restaurant) -> Bool in let nameMatch = restaurant.name.rangeOfString(searchText, options: 
     NSStringCompareOptions.CaseInsensitiveSearch) 
     return nameMatch != nil 
     }) 
    } 

    func updateSearchResultsForSearchController(searchController: UISearchController) { 
     let searchText = searchController.searchBar.text 
     filterContentForSearchText(searchText!) 
     tableView.reloadData() 
    } 

どのように私は私のフィルタ法では、この追加のパラメータを追加することができますか?

答えて

4

これを試してください。

func filterContentForSearchText(searchText: String) { 
     searchResults = restaurants.filter({ (restaurant: Restaurant) -> Bool in 

     let nameMatch = restaurant.name.rangeOfString(searchText, options: 
     NSStringCompareOptions.CaseInsensitiveSearch) 

     let locationMatch = restaurant.location.rangeOfString(searchText, options: 
     NSStringCompareOptions.CaseInsensitiveSearch) 

     return (nameMatch != nil || locationMatch != nil) 
     }) 
    } 
+0

ありがとうございますSumeet。出来た ! – Vinod

2

あなたはこの

func filterContentForSearchText(searchText: String) { 

     searchResults = restaurants.filter({(restaurant: Restaurant) -> Bool in 

      return restaurant.location.lowercaseString.containsString(searchText.lowercaseString) || restaurant.name.lowercaseString.containsString(searchText.lowercaseString) 

     }) 

     tableView.reloadData() 
     } 

デリゲートメソッド

func updateSearchResultsForSearchController(searchController: UISearchController) { 

    filterContentForSearchText(searchController.searchBar.text!) 
    } 

のように行うことができます。この方法は、あなたがより良い方法

で検索するのに役立ちます