没有的UITableView仍然有效!

我已经读过,每当你使用UITableView你应该将你的控制器类符合协议(如果你没有使用量身定制的UITableViewController类)。

所以我的超类是UIViewController但我忘了在.h文件中添加声明。 出于某种原因,该表仍然有效。 它从类中获取数据,单击单元格按预期工作。

有人可以向我解释一下 – 为什么它有效?

如果您的实现中仍有适当的方法,它将正常工作。 当表视图需要调用这些方法时,它不会检查您的类是否已声明它符合UITableViewDelegate或UITableViewDataSource,而是检查您的类是否实现了所需的方法。

明确声明您符合协议的要点是编译器可以生成警告。 如果您尝试将ViewController的实例分配给id但尚未在标题中声明,则会收到编译器警告,但如果实现了所有必需的UITableViewDataSourceDelegate方法,它仍然可以工作。