使用搜索栏搜索tableview时出现NCFString错误
我得到了从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;
}
请看看这个代码
- (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;
}
如果刚刚分配了'group',那么for()'语句不起作用,因为'group'将是空的。 – trojanfoe 2012-07-27 11:01:09
@trojanfoe感谢您的纠正 – Hiren 2012-07-27 11:07:08
仍然出现错误。'[ - NSCFString计数]:无法识别的选择器发送到实例0x1bc3d0' – user578386 2012-07-27 11:22:48
所以'nameData'是可变的阵列的可变数组?这就是你如何处理它。此外,为什么在使用快速枚举时分配'group'? – trojanfoe 2012-07-27 10:53:12
其实组是数组类型..即时通讯得到崩溃 – user578386 2012-07-27 10:54:45
所以'nameData' **是**数组数组?是或否。 – trojanfoe 2012-07-27 10:57:40