Search code examples
swiftuisearchcontroller

second parameter for filter method in swift 2.0


I use following code to search a tableviewcontroller in my app. Currently search string matches with restaurant name in my table list. I wish to match/search additional string , location with my code. How can I add location to this function

restaurant name variable - restaurant.name ,
restaurant location variable - 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()
    }

How can I add this additional parameter in my filter method?


Solution

  • Try this.

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