title: Type 'ViewController' does not conform to protocol 'UISearchResultsUpdating'
body: <p>I want to set up a <code>tableView</code> to search the cell I needed,but there have a problem. First I use the protocol named <code>UISearchDisplayController</code> but the Xcode warning is not good in IOS 8.0,so I read the protocol <code>UISearchResultUpdating</code>. But when I add the <code>UISearchResultUpdating</code> in my Viewcontroller,there have a  mistake in <code>UISearchResultUpdating</code>!   </p>
  
  <blockquote>
    <p>Type 'ViewController' does not conform to protocol
    'UISearchResultsUpdating'</p>
  </blockquote>
  
  <p>What should I do to solve?</p>
  
  <pre><code>class ViewController:UIViewController,UITableViewDataSource,UITableViewDelegate,UISearchResultsUpdating {
  
      @IBOutlet weak var tableview: UITableView!
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          // Do any additional setup after loading the view, typically from a nib.
          tools = [TodoModel(id: "1", image: "QQ", title: "聊天", date: DateFromString("2013-12-13")!),
          TodoModel(id: "2", image: "unbrella", title: "下雨", date: DateFromString("2013-12-13")!),
          TodoModel(id: "3", image: "plane", title: "飞行", date: DateFromString("2013-12-13")!)]
          navigationItem.leftBarButtonItem = editButtonItem()
      }
  
      override func didReceiveMemoryWarning() {
          super.didReceiveMemoryWarning()
          // Dispose of any resources that can be recreated.
      }
      func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int{
          if tableview == searchDisplayController?.searchResultsTableView{
              return filtertool.count
          }
          else {
              return tools.count
  
          }
      }
  
      // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
      // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
  
      func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&gt; UITableViewCell{
          let cell = self.tableview.dequeueReusableCellWithIdentifier("cellinit") as! UITableViewCell
          var tool : TodoModel
          if tableview == searchDisplayController?.searchResultsTableView{
              tool = filtertool[indexPath.row] as TodoModel
          }
          else { tool = tools[indexPath.row] }
          var image = cell.viewWithTag(1) as! UIImageView
          var title: UILabel = cell.viewWithTag(2) as! UILabel
          var date: UILabel = cell.viewWithTag(3) as! UILabel
          image.image = UIImage(named: tool.image)
          title.text = tool.title
          let local = NSLocale.currentLocale()
          let dateformat = NSDateFormatter.dateFormatFromTemplate("yyyy-MM-dd", options: 0, locale: local)
          let datematter = NSDateFormatter()
          datematter.dateFormat = dateformat
          date.text = datematter.stringFromDate(tool.date)
          return cell
  
      }
          func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -&gt; CGFloat {
          return 65
      }
      func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
          if editingStyle == UITableViewCellEditingStyle.Delete {
              tools.removeAtIndex(indexPath.row)
              self.tableview.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
          }
      }
  
      override func setEditing(editing: Bool, animated: Bool) {
          super.setEditing(editing, animated: animated)
          self.tableview.setEditing(editing, animated: animated)
      }
      @IBAction func close(segue: UIStoryboardSegue){
          tableview.reloadData()
      }
      override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
          if segue.identifier == "EditingSegue"{
          var vc = segue.destinationViewController as!
          EditingView
          var indexpath = tableview.indexPathForSelectedRow()
              if let index = indexpath {
                  vc.tool = tools[index.row]
              }
      }
          }
      func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath){
          let tool = tools.removeAtIndex(sourceIndexPath.row)
          tools.insert(tool, atIndex: destinationIndexPath.row)
      }
  
      func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -&gt; Bool
      {
          return editing
      }
      func searchDisplayController(controller: UISearchDisplayController, shouldReloadTableForSearchString searchString: String!) -&gt; Bool{
          filtertool = tools.filter(){$0.title.rangeOfString(searchString) != nil }
          return true
      }
  }
  </code></pre>