如果我在界面构建器中创建一个tableview并将数据源和委托连接到那里的文件所有者,我是否还需要在所述viewcontroller的实现中执行此操作?
@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>**
即手动指定协议遵守情况?
谢谢,
答案 0 :(得分:3)
从接口构建器设置委托和数据源时,似乎没有理由指定该类符合的协议。
它可以在不手动指定它们的情况下工作,因为语言非常动态,并且调用委托方法的过程在运行时完成,而不确定对象是否具有所需的方法。
只有在从代码设置委托/数据源时,才会进行一些静态类型检查,以查看委托/数据源是否符合所需的协议。
底线:写下来。你得到xcode自动完成,在某些情况下可能会有一些警告,代码文档和一些OCD实现。
答案 1 :(得分:1)
是。在代码中指定类实现协议是告诉XIB您可以建立连接并告诉编译器必须实现协议中所有必需的方法(如果不是,则应该引发警告)
从技术上讲,你可以不用它们,但你不应该这样做。
答案 2 :(得分:-1)
当您在头文件中添加UITableViewDataSource和UITabBarControllerDelegate时,您只能在interfacebuilder中连接它们。
不要忘记在实施中实施所需的方法(datasource&amp; delegate)。当你忘记它们时,你会收到警告。