Objective c 目标C类声明语法

Objective c 目标C类声明语法,objective-c,class,interface,uitableview,objective-c-protocol,Objective C,Class,Interface,Uitableview,Objective C Protocol,我需要一些帮助来理解Objective C中的类声明语法, 或者更具体地说 @interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate> @接口SomeViewController:UITableViewController UITableViewDataSource、UITableViewDelegate是什么意思 我的理解是,它在实例化类时接

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

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>
@接口SomeViewController:UITableViewController
UITableViewDataSource、UITableViewDelegate是什么意思


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

声明类时,语法允许您指定类必须遵守的协议列表

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

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

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

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

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

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


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

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

@interface SomeViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>
@接口SomeViewController:UITableViewController

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

,实际上
UITableViewController
已经符合协议
UITableViewDataSource
UITableViewDelegate
。因此,在这里指定它们是多余的