0

向我的应用程序添加 UITableViewController 时,我注意到 Xcode 的模板中缺少我要添加的常用代码:

我希望看到:

    @interface myTableViewController : UITableViewController <UITableViewDelegate , UITableViewDataSource>

相反,我看到:

    @interface myTableViewController : UITableViewController

为什么不需要声明 UITableViewController 是委托和数据源?

4

3 回答 3

1

它不需要声明您将要实现的内容。你可以实现它。此外,因为这是一个 TVController,所以它会自动为您完成。

于 2013-07-14T13:27:05.067 回答
1

UITableViewController 的接口声明是:

@interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {

因为您是从 UITableViewController 继承的,所以您的子类将共享 UITableViewController 拥有的任何方法实现,其中包括委托和数据源方法的实现。

于 2013-07-14T17:42:01.350 回答
1

如果您打开UITableViewController.h文件,您将看到它继承UIViewController并实现了这两个协议。没有必要让子类重新声明对它们父类实现的协议的符合性[es]。

如果您使用 xib 创建了视图控制器,则无需将delegateand分配dataSource给视图。但是,如果您以编程方式创建它 - 是的,请将其设置delegatedataSourceself.properties。

于 2013-07-14T21:46:38.580 回答