ios - Why does Xcode/Swift insist that I need to use the override keyword for Delegate and Data Source methods? -


the following code works absolutely fine if use override keyword xcode insists do...but if remove override keyword (as seen below in data source extension), build errors. see people organizing code in exact same way on place, , yet aren't using override keyword...any help? mean, if add override keyword, fine, i'd know "why?". new in swift 1.2 , i'm seeing bunch of old code?

import uikit  class eventstableviewcontroller: uitableviewcontroller {      var events = [event]()      override func viewdidload() {         super.viewdidload()          var newevent = event(id: 1, type: "birthday party", city: "dallas", state: "tx", date: "saturday, july 12, 2015", time: "6:00pm - 11:00pm", details: "some cool stuff! sed posuere consectetur est @ lobortis. maecenas faucibus mollis interdum. maecenas sed diam eget risus varius blandit sit amet non magna. nulla vitae elit libero, pharetra augue. etiam porta sem malesuada magna mollis euismod.")          events.append(newevent)          newevent = event(id: 2, type: "christmas party", city: "houston", state: "tx", date: "friday, december 11, 2015", time: "6:00pm - 11:00pm", details: "santa clause , not")          events.append(newevent)     }      override func didreceivememorywarning() {         super.didreceivememorywarning()         // dispose of resources can recreated.     }      override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) {         // cast var destination view controller         let eventdetail = segue.destinationviewcontroller as! eventdetialviewcontroller          // pass selected event on         if let indexpath = tableview.indexpathforselectedrow() {             let selectedevent = events[indexpath.row]             eventdetail.currentevent = selectedevent         }     }  }  // mark: - table view data source extension eventstableviewcontroller: uitableviewdatasource {      func numberofsectionsintableview(tableview: uitableview) -> int {         return 1     }      func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int {         return events.count     }      func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {         let cell = tableview.dequeuereusablecellwithidentifier("eventcell", forindexpath: indexpath) as! uitableviewcell          let currentevent = events[indexpath.row]          cell.textlabel?.text = "\(currentevent.type) - \(currentevent.date)"          return cell     } } 

if view controller inherits uitableviewcontroller, need use override keyword because apple implements these methods in uitableviewcontroller , overriding them.

if view controller inherits uiviewcontroller, , conforms uitableviewdatasource , uitableviewdelegate protocols, not need override keyword since providing first implementation of protocol methods.


Comments

Popular posts from this blog

How to provide Authorization & Authentication using Asp.net, C#? -

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

How to use Authorization & Authentication in Asp.net, C#? -