2011-07-30 5 views
0

UISearchBar를 사용하여 iPhone에서 콘텐츠 검색을 구현하려고합니다. 내 코드는 다음과 같습니다.iPhone에서 콘텐츠 검색을 구현하는 방법은 무엇입니까?

- (void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)searchText { 
    if([tableData count]) 
     [tableData removeAllObjects]; 

    //dataArray contains array of strings 
     //tableData should containg arrow of strings as a serch result 

    NSRange range = {0, [searchText length]}; 

    for(int i=0; i<[dataArray count]; ++i) 
    { 
     NSString *name = [dataArray objectAtIndex:i]; 

     if([name compare:searchText options:NSCaseInsensitiveSearch range:range] == NSOrderedSame) 
      [tableData addObject:[dataArray objectAtIndex:i]]; 
    } 
    [theTableView reloadData]; 
} 

나는 문자열의 소스로 dataArray을 복용하고 다음 나는 각 문자열의 일부 콘텐츠를 검색하려면 다음 나는 tableData 배열의 검색 텍스트를 포함하는 문자열을 저장해야합니다.

지금 글을 쓰고 있습니다. 시작 텍스트의 검색 결과에 해당하는 문자열은 dataArray에 3 개의 객체가있는 것처럼 일치합니다. 1. 인도, 2. 중국, 3. 미국에서 나는 "in"을 누른 상태입니다. 인도와 중국을 모두 보여 주어야하지만, 인도에서는 "In"이 인도의 콘텐츠를 시작하기 때문에 인도 만 표시합니다.

필요한 결과를 얻는 방법을 알려주십시오.

답변

1

당신이 searchTest 어디 나타납니다 있는지 확인하기 위해 전체 문자열을 확인해야 문자열 어디서나 seach하려면 :

NSRange titleResultsRange = [name rangeOfString:searchText options:NSCaseInsensitiveSearch]; 

if (titleResultsRange.length > 0) 
    [tableData addObject:name]; // or [tableData addObject:[dataArray objectAtIndex:i]]; 
관련 문제