0

现在我正试图围绕Objective C和XCode。我正在玩弄UITableView,我在分离背后的概念时遇到了问题

  • UITableViewController
  • UITableViewDelegate
  • UITableView 数据源

我熟悉 MVC 模式,我从 Apple Developer Docs 中了解到,他们的框架使用委托来“专门化”类而不进行子类化,并且数据源类定义了如何将数据从模型映射到视图(如果我错了)。

当我通过选择New File.. > Cocoa Touch Class > UIViewController 子类(检查 UITableViewController 子类)创建 TableViewController 时,我很困惑地看到模板包含 UITableViewDelegate 和 UITableViewDataSource 中的所有函数,而没有在头文件中指定 TableViewController 实现了这些协议。UITableViewController 的文档说它“符合 UITableViewDelegate 和 UITableViewDataSource”。这是否意味着它实现了这些协议?

所以我的问题是: UITableViewController 仅仅是结合 UITableViewDelegate 和 UITableViewDataSource 的便利类,还是我遗漏了什么?如果我提供单独的 UITableViewDelegate 和 UITableViewDataSource,我是否需要 UITableViewController?

谢谢!

4

1 回答 1

1

UITableViewController 是一个预先配置了 UITableView 的控制器,并且它本身被设置为 table view 的委托和数据源。

所以,是的,这几乎是一门便利课。

您不需要使用它,特别是如果您提供自己的数据源和委托。

于 2011-04-07T16:06:26.667 回答