搜索栏的崩溃应用程序 - rangeOfString:options:

时间:2018-01-23 05:31:19

标签: ios objective-c crash

我在我的应用中实现了一个搜索栏。

-(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

为什么?

1 个答案:

答案 0 :(得分:0)

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