无法覆盖 UIViewController 中的 UITableView 委托方法

Unable to override UITableView delegate methods in UIViewController

我正在尝试将我的 UITableViewController 转换为带有 UITableView 元素的 UIViewController。我将超类更改为 UIViewController,添加了 UITableViewDelegate,添加了本地 UITableView(我链接到故事板中的 table 视图),并设置了 tableView.delegate = self .现在我试图重写 tableView() 方法,以便我可以填充我的单元格。但是,它不允许我这样做 - "Method does not override any method from its superclass"。这是相关代码:

class MenuViewController: UIViewController, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Click Item"

    tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "menuItemCell")
    tableView.delegate = self
}

有什么我想念的吗?我检查了类似的 Whosebug 问题,这就是他们所说的。我对这一切都很陌生,所以我可能会忽略一些东西。

由于您不再编写 UITableViewController 的子class,因此您不再覆盖 它的委托和数据源函数,但您提供了自己的函数实施以符合这些协议。 Swift 严格检查您声明要覆盖的方法是否实际上已经在基础 class 中实现。对于 UITableViewController 是这样,但对于 UIViewController.
则不再如此 简而言之:从委托和数据源函数中删除 override 关键字。