首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表视图控制器iOS search中搜索特定记录

在表视图控制器iOS search中搜索特定记录
EN

Stack Overflow用户
提问于 2017-10-15 19:29:42
回答 3查看 596关注 0票数 1

我使用from序列化方法从url中获取数据,并将每条记录存储在类的对象中,并在表vc中显示每条记录。

现在,我想使用搜索栏实现搜索,并观看了许多教程,这些教程比较了字符串类型数组和另一个字符串类型数组(数组中的硬编码值)。但根据我的需要,我的数据存储在类obj中,而不是硬编码的数据,来自该对象的数据显示在cellforrow上。细胞福罗包含。

代码语言:javascript
运行
复制
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的数组。

误差图像

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-18 17:26:08

找到了。下面是其他条件下的变化

代码语言:javascript
运行
复制
searchArr   = tempArray.filter { $0.<classAttribute>.contains(searchText) }

searchArray = searchArr as! [comp]

print("search match")

listTableView.reloadData()

这里searchArr、searchArray和tempArray是类类型的数组,classAttribute是要在tableview中搜索的类的属性,我的类名是"comp“。

票数 1
EN

Stack Overflow用户

发布于 2017-10-15 21:59:23

然后,您只需修改以前的搜索筛选器:

代码语言:javascript
运行
复制
searchArray = tempArray.filter({$0.compName == searchBarClicked.text!})

编译器告诉您,您不能将$0类型为compsearchBarClicked.text (即String )进行比较,因此$0.compName将为String,因此可以使用==

票数 0
EN

Stack Overflow用户

发布于 2018-05-23 06:26:49

用这个:

代码语言:javascript
运行
复制
searchArray = searchArray.filter{(($0["name"]?.localizedCaseInsensitiveContains(textField.text!)))!}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46759113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档