2013-10-07 2 views
0

목표 C가 새로 도입되었으며 여기에 제 문제가 있습니다.검색 후 셀의 값이 잘못되었습니다.

[Messier new:1 :@"Name 1"], 
[Messier new:2 :@"Name 2"]... 

내가있는 tableView이 UISearchBar에, 내있는 tableView에서 이러한 배열을 밀어 : 나는 두 값의 배열, INT & 문자열을 가지고있다. 내가 셀을 탭하면 내가

enter image description here

내가 선택한 이름 (셀 이름)의 내 배열 int 값에서 반환해야 텍스트 버튼 "쇼"를 만들 수 있습니다. 정상적인 상태 (검색하기 전에)에서 내 버튼이 올바른 값을 반환하지만, 검색 후 잘못된 반환합니다. 예를 들어 (위의 그림을보세요) Andromeda는 숫자 11, Butterfly 20, Beehive 30, Beehive (마비 30), 검색 (Beehive 첫 번째 셀 가져 오기)을 검색 중입니다. 값 11 (Andromeda 값) 내가 원하는대로.

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    if([searchText isEqualToString:@""] || searchText == Nil) 
    { 
     searching = NO; 
    } 
    else 
    { 

     searching = YES; 

     [searchArray removeAllObjects]; 

     searchArray = [[NSMutableArray alloc] init]; 
     searchDictionary = [[NSMutableDictionary alloc] init]; 

     NSArray *sourceArray; 
     NSDictionary *sourceDictionary; 

     sourceArray = [[AstroData sharedAstroData] messierObjectsArray]; 
     sourceDictionary = [[AstroData sharedAstroData] messierNameIndexesDictionarry]; 

     for(NSString *key in [sourceDictionary allKeys]) 
     { 
      NSArray *messier = [sourceDictionary objectForKey:key]; 
      for(Messier *mess in messier) 
      { 
       NSRange result = [mess.name rangeOfString:searchText options:(NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch)]; 
       if(result.location != NSNotFound) 
       { 
        NSMutableArray *existingArray; 
        if((existingArray = [searchDictionary objectForKey:key])) 
        { 
         [existingArray addObject:mess]; 
        } 
        else 
        { 
         NSMutableArray *tempArray = [NSMutableArray array]; 
         [searchDictionary setObject:tempArray forKey:key]; 
         [tempArray addObject:mess]; 
        } 
       } 
      } 
     } 
     for(id key in sourceArray) 
     { 
      if([searchDictionary objectForKey:key]) 
       [searchArray addObject:key]; 
     } 
    } 
    [table reloadAllComponents]; 
} 

어쩌면 내가 테이블보기에 문제가 : 여기

내 serchBar 코드? 모두에게 감사하십시오.

P. 제 영어) 죄송합니다

답변

0

문제는 내가 필요로하는 모든이에 추가하는 것입니다, "쇼"텍스트 버튼에했지만 방법

if(search) 
.... 
else 
... but code 
관련 문제