В моем приложении iOS я реализовал табличный вид из основных данных и строки поиска. В текущем статусе поиск показывает только поля, начинающиеся с строки поиска, но я хочу показать поля, содержащие текст поиска длиной не менее трех символов.Параметры NSComparisonResult
That's мой код для функции поиска:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSLog(@"Previous Search Results were removed.");
[self.searchResults removeAllObjects];
for (Person *person in [self.fetchedResultsController fetchedObjects])
{
if ([scope isEqualToString:@"All"] || [person.firstname isEqualToString:scope])
{
NSComparisonResult result = [person.firstname compare:searchText
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
NSLog(@"Adding person.firstname '%@' to searchResults as it begins with search text '%@'", person.firstname, searchText);
[self.searchResults addObject:person];
}
}
}
}
Просит Вас научить меня способом сделать поиск в розыске, любое поле, которое имеет строку поиска по крайней мере трех символов в длина. Спасибо.
Stupid комментарий, я уверен, но Вы, вероятно, означает, содержит, по меньшей мере, три символа из строки поиска в том же порядке, как они появляются в строке поиска ? Таким образом, строка поиска может быть «abcdef», и это будет соответствовать «stcdepqr», но не «edabfc»? – Tommy
Да, вы правы, извините .... спасибо tommy:) Пример: строка поиска: # 10, выбранные поля: task # 10/group # 101 и т. Д. – mvasco
Означает ли это, что searchText # 10 будет сопоставлен с # 0120, поскольку он соответствует 3 символам из searchText или вы ищете 3 последовательных символа? –