Pet*_*rbo 3 cocoa-touch uitableview ios
我已经读过,每当你使用a时,UITableView你应该将你的控制器类符合<UITableViewDelegate, UITableViewDataSource>协议(如果你没有使用定制UITableViewController类).
所以我的超类是,UIViewController但我忘了<UITableViewDelegate, UITableViewDataSource>在.h文件中添加声明.出于某种原因,该表仍然有效.它从类中获取数据,单击单元格按预期工作.
有人可以向我解释一下 - 为什么它有效?
小智 8
如果您的实现中仍有适当的方法,它将正常工作.当表视图需要调用这些方法时,它不会检查您的类是否已声明它符合UITableViewDelegate或UITableViewDataSource,而是检查您的类是否实现了所需的方法.
明确声明您符合协议的要点是编译器可以生成警告.如果您尝试将ViewController的实例分配给id但未在标题中声明它,您将收到编译器警告,但如果实现了所有必需的UITableViewDataSourceDelegate方法,它仍然可以工作.