2012-11-07 3 views
1

내 앱이 사용자가 UISearchBar에 입력 한 직후에 검색 결과를 파싱합니다. 모든 것이 잘 작동합니다. 하지만 지금은 전문을 검색하고 싶습니다. 결과는 NSMutableArray에 있지만 표시되지는 않습니다. 문제는이 코드라고 생각합니다.iOS : 전체 텍스트 검색

NSRange nameRange = [SDPE.title rangeOfString:self.searchBar.text options:NSCaseInsensitiveSearch]; 

어떻게해야합니까?

+1

당신은 대신'NSPredicate'를 사용하여 시도 할 수 있습니다 . 보다 복잡한 필터링을 수행 할 수 있습니다. –

답변

0

때문에 잭 로렌스 좋은 조언에 :

- (void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope 
{ 
    NSPredicate *resultPredicate = [NSPredicate 
            predicateWithFormat:@"SELF contains[cd] %@", 
            searchText]; 

    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate]; 
} 

출처 : http://www.appcoda.com/how-to-add-search-bar-uitableview/

1

확인이 : 나는 완벽한 대답을 발견

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    searchBar.showsCancelButton = YES; 
    if([self.filteredListContent count]>0) 
    { 
    [self.filteredListContent removeAllObjects]; // First clear the filtered array. 
    } 

    for (int cnt = 0; cnt< [self.listContent count];cnt++) 
    { 
    NSRange range = [[[self.listContent objectAtIndex:cnt]lowercaseString] rangeOfString :[searchText lowercaseString]]; 

    if(range.length>0) 
    { 
     [self.filteredListContent addObject:[self.listContent objectAtIndex:cnt]]; 
    } 
    self.blSearchBarClicked = TRUE; 
    [self.tbViewSearch reloadData]; 
    } 
} 
+0

왕자 감사합니다. 옵션을 삭제하고 lowercaseString을 대신 추가했습니다. 이전처럼 내 결과를 필터링하고 있습니다. 도움이된다면 – filou

+0

진드기가 대답합니다. –