私はSearchControllerでNSComparisonResultを使用しています:私は、文字列を検索する場合、それはその文字列で始まる場合NSComparisonResult検索文字列の一部ですか?
for (Annotation *ano in listContent) {
NSComparisonResult result = [ano.title compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame) {
[self.filteredListContent addObject:ano];
}
}
が、それは結果だけを検索します。
録音は "マイアートギャラリー" "マイ・アート・ギャラリー" <ため
検索です--- は
見つかり、 "マイ" <ため
検索---発見します
「アート」を検索< ---見つからない
私は上記示したように私は、文字列の部分を見つけることができるように、「ギャラリー」<のための10
検索---見つかりません
は、どのように私は私のコードを変更することができますか?
NSComparisonResult result1 = [dummyString compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:[dummyString rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)]];
if (result1 == NSOrderedSame)
{
[self.filteredListContent addObject:dummyString]; // this can vary drastically
}
注:サブチェックを行うにまっすぐ進む方法があり
for (Annotation *ano in listContent) {
NSRange range = [ano.title rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (range.location != NSNotFound) {
[self.filteredListContent addObject:ano];
}
}