-2

我需要一些帮助来理解 Objective C 中的类声明语法,或者更具体一些

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

UITableViewDataSource,UITableViewDelegate 是什么意思

我的理解是当类被实例化时它接收这两个对象。如果我错了,请纠正我..

4

3 回答 3

2

UITableViewDataSource并且UITableViewDelegate是两个协议,而不是类(或对象)。

< >当您声明一个类时,您可以使用括号语法指定您的类实现的任意数量的协议。

协议是必需或可选方法的列表。将协议添加到类声明中实际上并没有实现或声明该协议中的任何方法。你必须自己做。但是,如果您没有实现所需的协议方法,您将收到编译器警告。

于 2012-09-27T18:06:11.687 回答
1

当您声明一个类时,<> 语法允许您指定该类必须遵守的协议列表。

协议是您的类必须实现的一组方法(您也可以指定可选方法)。它们只有方法声明,但程序员必须在他的类中实现它们。协议在 Objective-C 中非常重要,因为它们是委托模式的核心。

在这种特定情况下,UITableViewDelegate 是处理 UITableViews 的对象必须遵守的协议。表格视图代表负责控制表格及其单元格,例如设置它们的高度、附件等。

UItableViewDataSource 是一个向表格视图提供数据的对象必须遵守的协议。符合此协议的对象负责返回将在表格视图中显示的数据。

在需要时不使用协议会产生警告,迟早会使您的应用程序崩溃。

于 2012-09-27T18:05:54.257 回答
0

UITableViewDataSource 和 UITableViewDelegate 是协议。要了解什么协议,请参阅。协议类似于 Java 中的接口。

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

这一行仅仅意味着你声明了一个类“So​​meViewController”,它继承自“UITableViewController”并采用两个协议:UITableViewDataSource 和 UITableViewDelegate

于 2012-09-27T18:09:41.670 回答