搜索栏的崩溃应用程序 - 范围字符串:选项:



我已经在我的应用程序中实现了一个搜索栏。

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar   
 {
    [_tableView_Rego resignFirstResponder];
 }
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString 
 *)searchText
 {
    if(searchText.length == 0)
 {
    isFiltered = NO;
 }
 else
 {
      isFiltered = YES;
      arrayFilter = [[NSMutableArray alloc]init];
      for (NSString *str in arrayNameList)
     {
        NSRange stringRange = [str rangeOfString:searchText 
         options:NSCaseInsensitiveSearch];
        if (stringRange.location != NSNotFound)
        {
            [arrayFilter addObject:str];
        }
    }
  }
   [_tableView_Rego reloadData];
  }

当我在 arrayNameList 中提供静态数据时,它可以工作,但是当我通过后端提供动态数据时,它会崩溃并出现此错误:

-[nameListMClass rangeOfString:options:]:发送到实例0x60000042dda0的无法识别的选择器

为什么?

你的数组arrayNameList包含一个类 nameListMClass 的对象,该对象可能不是字符串,并且不提供方法rangeOfString:options:。您应该检查arrayNameList的成员并检查他们来自哪里。

最新更新