搜索在表视图控制器的iOS迅速
问题描述:
我从URL中使用jsonserialization方法,并且每个存储并在一类,并显示在表VC的每个记录的一个目的每个记录中获取数据的特定记录。搜索在表视图控制器的iOS迅速
现在我想用搜索栏来实现搜索和观看很多教程其中有字符串类型的数组和字符串类型的另一个阵列(硬编码值数组)之间的比较。 但根据我的需要,我的数据存储在obj类中,而不是硬编码数据,并且该对象中的数据显示在cellforrow上。 cellforrow包含 。
if isSearching
{
cell.textLabel?.text = searchArray[indexPath.row] //.compName
cell.detailTextLabel?.text = searchArray[indexPath.row]
}
else{
cell.textLabel?.text = tempArray[indexPath.row].compName
cell.detailTextLabel?.text = tempArray[indexPath.row].complocation
}
return cell
那么如何实现搜索栏,得到下面的错误。 请帮忙! 这里我的课程名是 - > comp。 和searchArray是一个字符串数组, tempArray是数组,它包含类的obj
答
找到它。这里是 以下是在其他条件变化
searchArr = tempArray.filter { $0.<classAttribute>.contains(searchText) }
searchArray = searchArr as! [comp]
print("search match")
listTableView.reloadData()
这里searchArr和searchArray和tempArray类类型的数组,& classAttribute是要在tableview中搜索该类属性,我的类名是“补偿”
答
然后你只需要修改搜索过滤器使用是:
searchArray = tempArray.filter({$0.compName == searchBarClicked.text!})
编译器告诉你,您无法比较comp
类型的$0
到searchBarClicked.text
这是String
,因此$0.compName
将是String
,因此==
可以使用
你必须让我们知道您的类型'comp'是什么...?因此,添加类定义或东西'comp' – Ladislav
你好@Ladislav补偿是我的课name..class补偿{ VAR COMPNAME:字符串! } – Aj1591