2017-01-24 17 views
1

私のアプリケーションでは、うまく機能する検索を使用しますが、私はアドバイスが必要です。発音区別符を使わずにテキストを検索すると、その結果を発音区別記号でも検索すると、その操作方法がわかりません。 例:検索の穴番号を入力してください、holesovice穴のサービスを見つける必要があります。ここでswift 3 - 検索結果も発音区別記号付き

は、私のコードの一部です:

func filterContentForSearchText(_ searchText: String) { 
     filteredERequests = requests.filter({(request : CityRequest) -> Bool in 

      return request.cityName.lowercased().contains(searchText.lowercased()) 

     }) 
     myTable.reloadData() 
    } 

答えて

4

あなたは分音 小文字を区別しない(必要に応じて大文字小文字を区別しない)検索のためのオプションでrange(of:, options:)を使用することができます。例:

let list = ["holesovice", "holešovice"] 
let searchTerm = "sovi" 

let filtered = list.filter { 
    $0.range(of: searchTerm, options: [.diacriticInsensitive, .caseInsensitive]) != nil 
} 

print(filtered) // ["holesovice", "holešovice"] 
+0

アドバイスのおかげで、正直なところ、私は、私のコードでそれを使用する方法を... :( – Alien

+1

@Alienを理解していない。そして、それは自己完結型ではありませんので、私はあなたのコードをコンパイルすることはできません。 )しかし、あなたのクロージャーでは、 'return request.cityName.range(of:searchText、options:[.diacriticInsensitive、.caseInsensitive])!= nil'のようなものでなければなりません。 –

+0

私はロバです:D。大いに感謝する! – Alien

関連する問題