Ios 什么';用分区过滤核心数据填充的TableView最便宜的方法是什么?
我有一个由多个动态部分的核心数据填充的tableview,我想使用UISearchController来搜索特定的记录。我找到的每个教程都说使用一个获取结果的数组,再加上一个过滤数组来显示结果,但这对于维护我的tableview部分来说是一件痛苦的事情 我的代码完全可以工作,因为每次用户在搜索字段中键入内容时,我都会执行一次获取,但我意识到这对于资源来说是比较昂贵的 那么,在维护tableview部分的同时,如何在阵列上实现过滤器呢?数组的数组 我当前的代码:Ios 什么';用分区过滤核心数据填充的TableView最便宜的方法是什么?,ios,core-data,nsfetchedresultscontroller,Ios,Core Data,Nsfetchedresultscontroller,我有一个由多个动态部分的核心数据填充的tableview,我想使用UISearchController来搜索特定的记录。我找到的每个教程都说使用一个获取结果的数组,再加上一个过滤数组来显示结果,但这对于维护我的tableview部分来说是一件痛苦的事情 我的代码完全可以工作,因为每次用户在搜索字段中键入内容时,我都会执行一次获取,但我意识到这对于资源来说是比较昂贵的 那么,在维护tableview部分的同时,如何在阵列上实现过滤器呢?数组的数组 我当前的代码: //MARK: Search De
//MARK: Search Deletegate Methods
func updateSearchResultsForSearchController(searchController: UISearchController) {
let searchText = self.searchController.searchBar.text
let selectedScopeButtonIndex = self.searchController.searchBar.selectedScopeButtonIndex
self.filterContentForSearch(searchText, scope: selectedScopeButtonIndex)
self.tableView.reloadData()
}
func filterContentForSearch(searchText: String, scope: Int)
{
println("Fired")
//Way too expensive for resources
var fetchRequest = NSFetchRequest()
fetchRequest = NSFetchRequest(entityName: "FoodItem")
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
let mealDescriptor = NSSortDescriptor(key: "meal", ascending: true)
fetchRequest.sortDescriptors = [mealDescriptor,sortDescriptor]
//Predicate
if searchText != ""
{
let namePredicate = NSPredicate(format: "name CONTAINS[cd] %@", searchText)
fetchRequest.predicate = namePredicate
}
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: "meal", cacheName: nil)
fetchedResultsController.delegate = self
fetchedResultsController.performFetch(nil)
}