【发布时间】:2019-06-15 07:05:35
【问题描述】:
我使用CoreData 来收集我的数据,它有 2 个entities 是类别和项目,每个类别与项目有很多关系,我也有一个 UISearchBar 来过滤数据,但是每当我尝试搜索它会显示 Item 实体中的每一个项目,我需要做的是只显示与类别本身相关的项目,以便它显示我选择的类别的项目,我的代码如上所示。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let request : NSFetchRequest <Item> = Item.fetchRequest()
request.predicate = NSPredicate(format: "name CONTAINS [cd] %@", searchBar.text!)
request.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
do {
itemArray = try context.fetch(request)
} catch {
print(error)
}
tableView.reloadData()
if searchBar.text?.count == 0 {
loadItems()
tableView.reloadData()
DispatchQueue.main.async {
searchBar.resignFirstResponder()
}
}
}
这是显示 Item 实体上每个项目的代码,我猜它可能与我初始化的请求有关。
【问题讨论】:
标签: swift database core-data filter uisearchbar