代理的delegate和dataSource有什么区别?

作者: heweiming 分类: iOS基础 发布时间: 2017-04-30 22:15

根据CocoaTouch的设计来说

  • dataSource是数据源,里面的东西都跟内容有关,协议里面的主要是cell的构造函数,各种属性。这里面可以设置cell的属性与赋值。一般delegate与dataSource伴生,这时数据源处理的数据就是Delegate中发送委托的类中的数据,并通过Datasource发送给接受委托的类。
  • delagate是委托,在OC中则是一个类委托另一个类实现某个方法。当一个对象接受到某个事件或者通知的时候, 会向它的Delegate对象查询它是否能够响应这个事件或者通知,如果可以这个对象就会给它的Delegate对象发送一个消息(执行一个方法调用)。 Instead of being delegated control of the user interface, a data source is delegated control of data.官网上这句话解释的比较好,我们可以发现,delegate控制的是UI,是上层的东西;而datasource控制的是数据。他们本质都是回调,只是回调的对象不同。(官网原文:https://developer.apple.com/library/ios/#documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html) 其他: 1。The main value of delegation is that it allows you to easily customize the behavior of several objects in one central object. 委托的主要价值是让你可以在一个核心对象里定制多个对象的功能特性。 2。Helper Object(delegate and datasource) are commonly used to add functionality to an existing class without having to subclass it. 构建helper object,helper object用来对已有的类添加功能特性而不是通过子类继承实现。
  • 如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注