What is up with UITableViewDataSource in Swift 3?

So i’m getting really pissed here.

I’m trying to do this
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
And Xcode is bitching about something.
Instance method ‘tableView(:heightForHeaderInSection:)’ nearly matches optional requirement 'tableView(:titleForHeaderInSection:)’ of protocol ‘UITableViewDataSource’

It says i should use titleForHeaderInSection because the method i’m using nearly matches the other? What the fu…???
Now it gives me 2 options, either make the function private or @nonobjc, which result in the methods not being called.

Anybody have a solution? Or know what i’m doing wrong?