我在我的应用中实现了一个搜索栏。
-(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
为什么?
答案 0 :(得分:0)
您的数组arrayNameList
包含类nameListMClass
的对象,该对象可能不是字符串,并且不提供方法rangeOfString:options:
。您应该检查arrayNameList
的成员并检查他们来自哪里。