Как искать через данные структуры, используя UISearchBar swift 4.2 - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть struct datatype, который используется для декодирования данных

struct OtherCountry : Decodable {
    let name : String
    let dial_code : String
    let code : String

}

struct FrequentCountry:Decodable{
    let name : String
    let dial_code : String
    let code : String
}

Я хочу выполнить поиск по имени и коду, и он хранится в массиве типа struct

    var OtherDataCountry = [OtherCountry]()
    var FrequentDataCountry = [FrequentCountry]()

I также реализовал функцию поиска, которая выглядит примерно так

func searchBar(searchText: String) {
        searchCountry1 = OtherDataCountry.filter({ (OtherCountry) -> Bool in
            return OtherCountry.name.range(of: searchText , options:[.caseInsensitive]) != nil

        searchActive = !searchCountry1.isEmpty

            self.mTableView.reloadData()
        }

        )}
}

Может кто-нибудь помочь мне преобразовать эти данные структуры в массив строк, что было бы полезно, потому что я могу искать в массиве и использовать этот результат, чтобы показать все данные ,

Спасибо за помощь!

1 Ответ

0 голосов
/ 26 февраля 2020

Пожалуйста, попробуйте ниже код

func searchBar(searchText: String) {
            searchCountry1 = OtherDataCountry.filter {
                $0.name.range(of: searchText , options:[.caseInsensitive]) != nil
    }.map {$0.name}

            searchActive = !searchCountry1.isEmpty

                self.mTableView.reloadData()
            }

            )
    }

searchCountry1 будет массив после карты, содержащий значение имени

...