Objective c 使用搜索栏搜索tableview时获取NCFString错误
我得到了一个从json字符串解析的表视图。一切正常。如果我要在搜索栏中键入一个字符,我会得到这个错误Objective c 使用搜索栏搜索tableview时获取NCFString错误,objective-c,xcode,Objective C,Xcode,我得到了一个从json字符串解析的表视图。一切正常。如果我要在搜索栏中键入一个字符,我会得到这个错误”-[\u NSCFString CountByEnumerating with State:objects:count:]:发送到实例0x1d52ac50的无法识别的选择器“下面是代码。下面的变量名数据是NSMUTABLEARRY。你们能帮我一下吗 - (BOOL)searchDisplayController:(UISearchDisplayController *)controllersho
”-[\u NSCFString CountByEnumerating with State:objects:count:]:发送到实例0x1d52ac50的无法识别的选择器“
下面是代码。下面的变量名数据是NSMUTABLEARRY。你们能帮我一下吗
- (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;
}
-(BOOL)searchDisplayController:(UISearchDisplayController*)控制器应重新加载TableForSearchString:(NSString*)searchString
{
NSMUTABLEARRY*array=[[NSMUTABLEARRY alloc]init];
NSDictionary*命名=[self.friendsDictionary objectForKey:@“data”];
NSLog(@“ggg%@,[self.friendsDictionary objectForKey:@“data]”);
对于(int i=0;i<[[self.friendsDictionary objectForKey:@“data”]计数];i++){
[array addObject:[[[self.friendsDictionary objectForKey:@“data”]objectAtIndex:i]objectForKey:@“name”];
}
NSLog(@“数组%@”,数组);
if(self.searchDisplayController.searchBar.text.length>0)
{
NSString*strSearchText=self.searchDisplayController.searchBar.text;
NSMutableArray*组=[[NSMutableArray alloc]init];
对于(int i=0;i 0)
{
searchData=[[NSMutableArray alloc]init];
[searchData addObjectsFromArray:group];
NSLog(@“Sear%@”,searchData);
}
}
返回YES;
}
那么nameData
是可变数组的可变数组吗?你就是这样处理的。还有,当组与快速枚举一起使用时,为什么要分配组?实际上组是数组类型。我仍然在获取crashSonameData
是数组吗?是或不是,好的,酷。现在请发布堆栈跟踪。如果您刚刚分配了group
,则for()
语句无效,因为group
将为空。仍在获取错误。“-[\u NSCFString count]:未识别的选择器发送到实例0x1bc3d0”