2013-08-04 68 views
0

如果我在界面构建器中创建一个tableview并将数据源和委托连接到文件所有者那里,那么我是否也需要在所述viewcontroller的实现中执行此操作?委托语法

@interface myViewController : UIViewController **<UITableViewDataSource**, **UITabBarControllerDelegate>** 

即手动指定协议遵守?

谢谢,

回答

3

当从接口生成器设置委托和数据源时,似乎没有理由指定该类符合哪些协议。

它没有手动指定它们,因为语言是非常动态的,调用委托方法的这个过程是在运行时完成的,而不必确定对象是否具有所需的方法。

只有在代码中设置委托/数据源时,才会进行一些静态类型检查,以确定委托/数据源是否符合所需的协议。

底线:写出来。你会得到xcode自动完成,在某些情况下可能会出现一些警告,代码文档和一些OCD实现。

1

是的。在代码中指定类实现协议是告诉XIB您可以建立连接并告诉编译器必须实现协议中所有必需的方法(如果不是,则会引发警告) 。

技术上你可以没有他们,但你不应该这样做。

-1

你试过了吗?它没有工作吗?

当您在头文件中添加UITableViewDataSource和UITabBarControllerDelegate时,您只能在interfacebuilder中连接它们。

只是不要忘记在你的实现中实现所需的方法(datasource & delegate)。当你忘记它们时,你会得到一个警告。