title: Swift 3 UITableViewDataSource selectors
body: <p>After updating to Swift 3 I get error in following code: </p>
  
  <pre><code>extension MyViewController: UITableViewDataSource {
      //...
  
      func tableView(_ tableView: UITableView, 
                     heightForRowAt indexPath: IndexPath) -&gt; CGFloat {
          return someValue
      }
  }
  </code></pre>
  
  <blockquote>
    <p>Objective-C method 'tableView:heightForRowAt:' provided by method
    'tableView(_:heightForRowAt:)' does not match the requirement's
    selector ('tableView:heightForRowAtIndexPath:')</p>
  </blockquote>
  
  <p>It can be fixed with </p>
  
  <pre><code>@objc(tableView:heightForRowAtIndexPath:)
  func tableView(_ tableView: UITableView,
                 heightForRowAt indexPath: IndexPath) -&gt; CGFloat {
      return someValue
  }
  </code></pre>
  
  <p>Could anyone explain motivation of signature changing in new version of Swift? There is no info in <a href="https://swift.org/migration-guide/" rel="nofollow">migration guide</a> about it.</p>