2016-09-03 6 views
-1

私は基本的に、どのような検索でもフィルタリングの処理方法が正確に一致するようにしています。部分的に完全に一致する配列をフィルタリングしますか?

私が見てきた検索フィルタリングのためのすべてのガイドは、これまで基本的に何かを与える

let lower = searchBar.text!.lowercaseString 

filteredInterestArray = interestsArray.filter({$0.title.rangeOfString(lower) != nil}) 

を提供しています:

[ "猫"、 "ネズミ"、 "コウモリ"、 "アトラス"]

"at"を入力すると、実際にはAltasだけが表示されるはずです。また、「stla」と入力した場合、明らかに非常に直感的ではないアトラスが表示されます。

適切なフィルタリングはどのように達成されますか?

答えて

1

これを実現するには、rangeOfStringメソッドの代わりにhasPrefix(_:)メソッドを使用できます。

用途:

let lower = searchBar.text!.lowercaseString 
filteredInterestArray = interestsArray.filter({$0.title.hasPrefix(lower)}) 
1

NSString文字列が別で始まるかどうかを判断するためにhasPrefix:を提供します。

OPは、最初にinterestsArrayの文字列が小文字であるかどうかを示していませんが、そうでない場合は、チェックする前にforce them to lowerにする必要があります。

関連する問題