Objective C类声明语法

时间:2012-09-27 18:04:02

标签: objective-c class interface uitableview objective-c-protocol

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

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

UITableViewDataSource,UITableViewDelegate是什么意思

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

3 个答案:

答案 0 :(得分:2)

UITableViewDataSourceUITableViewDelegate是两个协议,而不是类(或对象)。

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

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

答案 1 :(得分:1)

宣布课程时,&lt;&gt;语法允许您指定类必须遵守的协议列表。

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

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

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

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

答案 2 :(得分:0)

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

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>

这一行只是意味着你声明一个继承自“UITableViewController”的类“SomeViewController”并采用两个协议:UITableViewDataSource和UITableViewDelegate