2017-10-15 75 views
0

我从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

Image of the error

+0

你必须让我们知道您的类型'comp'是什么...?因此,添加类定义或东西'comp' – Ladislav

+0

你好@Ladislav补偿是我的课name..class补偿{ VAR COMPNAME:字符串! } – Aj1591

回答

0

找到它。这里是 以下是在其他条件变化

searchArr = tempArray.filter { $0.<classAttribute>.contains(searchText) } 

searchArray = searchArr as! [comp] 

print("search match") 

listTableView.reloadData() 

这里searchArr和searchArray和tempArray类类型的数组,& classAttribute是要在tableview中搜索该类属性,我的类名是“补偿”

0

然后你只需要修改搜索过滤器使用是:

searchArray = tempArray.filter({$0.compName == searchBarClicked.text!}) 

编译器告诉你,您无法比较comp类型的$0searchBarClicked.text这是String,因此$0.compName将是String,因此==可以使用

+0

我已经尝试过,但在.filter产生其他错误,他说 - >无法指定类型的值'[COMP]为键入“[字符串]” ...... – Aj1591

+0

请将您'comp'类以上你的问题和一个例子是什么数据在'tempArray' – Ladislav

+0

只需编辑你的问题,并将其添加到那里 – Ladislav

相关问题