Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UISearchController更新搜索结果问题_Ios_Swift3 - Fatal编程技术网

Ios UISearchController更新搜索结果问题

Ios UISearchController更新搜索结果问题,ios,swift3,Ios,Swift3,我的问题是我在Swift 3中实现了UISearchController,当我尝试过滤时,它是一个简单的数组,但我的情况有点不同,我有一个数组,我从类中的SQLite数据库获取所有数据,因此它的类数组 managerControlClassArray包含类数组的所有内容 我想在updateSearchResultsdelegate方法中过滤内容,但这真的很难,而且我做了很多研究,在没有得到我想要的查询后,我发现StackOverflow非常有用,如果有人帮我,我将不胜感激 一些代码逻辑: man

我的问题是我在Swift 3中实现了
UISearchController
,当我尝试过滤时,它是一个简单的数组,但我的情况有点不同,我有一个数组,我从类中的
SQLite数据库
获取所有数据,因此它的类数组

managerControlClassArray
包含类数组的所有内容

我想在
updateSearchResults
delegate方法中过滤内容,但这真的很难,而且我做了很多研究,在没有得到我想要的查询后,我发现StackOverflow非常有用,如果有人帮我,我将不胜感激

一些代码逻辑:

manager = ModelManager.getInstance().getAllManager()
// I get all the objects using singleton

//manager class has following data
id, title, designation, salary

//In TableView i want to display data by using that

let managerVar = manager[indexPath.row]
cell.textLabel.text = managerVar.title
编辑:

MasterTableViewController.swift

谢谢


再见。

我们可以使用Swift内置的
过滤方法吗

func updateSearchResults(for searchController: UISearchController) {
  self.tableView.reloadData()

  self.filteredRecipeArray.removeAll(keepingCapacity: false)
  guard let searchText = searchController.searchBar.text else {
      return
  }

  let array = managerArray.filter {
      return $0.id.range(of: searchText) != nil ||
             $0.title .range(of: searchText) != nil ||
             $0.ManagerDesignation.range(of: searchText) != nil
  }

  self.filteredRecipeArray = array

  self.tableView.reloadData()
}
编辑


更新了最新Swift 3语法的答案

那么你是如何过滤你的数组的,你能发布一些代码吗?另外,通过类,你是说你正在使用数组中包含的自定义对象吗?添加了codelogic。你是如何过滤简单数组的,你能为它添加代码吗?你发布的代码不足以找出问题的原因。我添加了我在tableviewcell中显示的代码!您好,谢谢您的回答,非常感谢您帮助我回答最后一个问题,因为我遇到了一个错误“类型'String'的值没有成员'rangeOfString'”,我只想通过标题在大写和小写中搜索。。。。。非常感谢swift 3,语法没有什么变化,仅此而已:return($0.title.range(of:searchText)!=nil)你太好了
class Manager: NSObject{

    var id: String = String()
    var title: String = String()
    var ManagerDesignation: String = String()

}
func updateSearchResults(for searchController: UISearchController) {
  self.tableView.reloadData()

  self.filteredRecipeArray.removeAll(keepingCapacity: false)
  guard let searchText = searchController.searchBar.text else {
      return
  }

  let array = managerArray.filter {
      return $0.id.range(of: searchText) != nil ||
             $0.title .range(of: searchText) != nil ||
             $0.ManagerDesignation.range(of: searchText) != nil
  }

  self.filteredRecipeArray = array

  self.tableView.reloadData()
}