黑马程序员技术交流社区
标题:
请问OC里的代理概念
[打印本页]
作者:
Latinno
时间:
2016-4-13 14:27
标题:
请问OC里的代理概念
上一周周末遇到了这一方面的问题。
其实问题该是展开成三块——OC里的协议,代理,数据源。
协议已经大致上有所了解了,功能有点像继承,实操有点像声明,而且一个类可以多遵守。
当然,站在万物皆对象的角度来看,我认为协议本身也是一个对象,于是协议本身也是可以多遵守的。
那么,什么才是代理呢?
是不是可以按照字面意思理解成:“我作为一个对象,我已经遵守了协议,拿到了协议中所声明的一系列方法之后,就要去作为代理方,去履行协议中所声明的方法来给出实现呢?”
希望大家能够来探讨一下这个问题。
还有就是数据源了,对这个概念还是比较模糊的。希望能有人来系统的讲解一下。
作者:
muzipiao
时间:
2016-4-13 17:08
可简单理解为,在当前类中,将传入的对象,代替当前类完成某个功能,例如MVC模式
作者:
Gadbee
时间:
2016-4-13 18:51
代理就是通过协议实现的一种设计模式,A类可以声明X协议,并为A类创建一个遵守了X协议的B类的属性。在适当的时候(即在A类的某些方法中)通过其属性B执行X协议里的声明的方法。当然,具体的实现是B类中实现的。非常有效的解决了两个类之间的通信(即传值)问题。并且耦合性不高,阅读十分明了。
作者:
Gadbee
时间:
2016-4-13 18:54
数据源:在iOS的一些UI控件需要一些特定的数据(如字符串,图片等)才能展示丰富的界面。所有需要有一个对象给这些UI控件传值,而数据源就是指这个给UI控件传值的对象。一般为控制器。控制器成为了UI控件的数据源后需要遵守数据源协议,实现协议中必须实现的方法。一般这些方法中会存在返回值,会将UI控件所需的数据返回。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2