2012-07-27 70 views
0

我得到了從json中解析出來的表視圖string.everthing很好用.if im在我的搜索欄中輸入一個字符即時獲取該錯誤'-[__NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1d52ac50'下面是code.were下面變量名稱數據是NSMutableArray.could你們幫助我。使用搜索欄搜索tableview時出現NCFString錯誤

- (BOOL)searchDisplayController:(UISearchDisplayController *)controllershouldReloadTableForSearchString:(NSString *)searchString 
    { 
[searchData removeAllObjects]; 

NSArray *group; 
for(group in nameData) 
{ 
    NSLog(@"wat am i doing here:%@",group); 
    NSMutableArray *newGroup = [[NSMutableArray alloc] init]; 
    NSString *element; 

    for(element in group) 
    { 
     NSRange range = [element rangeOfString:searchString options:NSCaseInsensitiveSearch]; 

     if (range.length > 0) { 
      [newGroup addObject:element]; 
     } 
    } 

    if ([newGroup count] > 0) { 
     [searchData addObject:newGroup]; 
    } 

} 

return YES; 
} 
+0

所以'nameData'是可變的陣列的可變數組?這就是你如何處理它。此外,爲什麼在使用快速枚舉時分配'group'? – trojanfoe 2012-07-27 10:53:12

+0

其實組是數組類型..即時通訊得到崩潰 – user578386 2012-07-27 10:54:45

+0

所以'nameData' **是**數組數組?是或否。 – trojanfoe 2012-07-27 10:57:40

回答

1

請看看這個代碼

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 
{ 
    NSMutableArray *array=[[NSMutableArray alloc]init]; 
    NSDictionary *naming= [self.friendsDictionary objectForKey:@"data"]; 
    NSLog(@"ggg %@",[self.friendsDictionary objectForKey:@"data"]); 
    for(int i =0 ; i< [[self.friendsDictionary objectForKey:@"data"] count]; i++){ 
     [array addObject:[[[self.friendsDictionary objectForKey:@"data"] objectAtIndex:i] objectForKey:@"name"]]; 
    } 
    NSLog(@"Array %@", array); 

    if(self.searchDisplayController.searchBar.text.length>0) 
    { 
     NSString *strSearchText = self.searchDisplayController.searchBar.text; 
     NSMutableArray *group = [[NSMutableArray alloc]init]; 
     for (int i=0; i<array.count; i++) { 

      NSString *strData = [array objectAtIndex:i]; 
       NSLog(@"string Data:%@",strData); 
      NSRange rng = [strData rangeOfString:strSearchText options:NSCaseInsensitiveSearch]; 
      if(rng.location != NSNotFound) 
      { 
       if(rng.location== 0)//that is we are checking only the start of the names. 
       { 
        [group addObject:strData]; 
       } 
      } 
     } 
     if ([group count] > 0) 
     { 
    searchData = [[NSMutableArray alloc] init]; 
      [searchData addObjectsFromArray:group]; 
      NSLog(@"Sear %@", searchData); 

     } 
    } 
    return YES; 
    } 
+0

如果剛剛分配了'group',那麼for()'語句不起作用,因爲'group'將是空的。 – trojanfoe 2012-07-27 11:01:09

+0

@trojanfoe感謝您的糾正 – Hiren 2012-07-27 11:07:08

+0

仍然出現錯誤。'[ - NSCFString計數]:無法識別的選擇器發送到實例0x1bc3d0' – user578386 2012-07-27 11:22:48