protocol与delegate
来源:互联网 发布:水晶球软件 储量计算 编辑:程序博客网 时间:2024/05/18 20:32
一、关于协议
1、protocol是一系列方法的声明,注意:只有声明!
2、protocol的用处:如果好几个类都用到了几个相同的方法的声明,则可以把这几个相同的方法声明写成一个协议,哪个类用到了只需要实现这个协议即可。
二、关于代理
代理的意思:B作为A的代理,当A出现某种情况时会让B去做某件事,所以代理涉及到至少两个对象(也有可能自己是自己的代理)。
如果写死B类对象作为A类对象的代理(就是只让B类对象做代理),那么如果把B类删掉A类将无法正常工作,这就是耦合太紧,依赖度太高,这么设计的代理适应性不强,需要解耦合,解耦合要用到protocol。要知道B类对象之所以能成为A类对象的代理是因为B实现了一些“特殊”的方法,也就是说,只要是个类它也实现了这些方法,它也可以成为A的代理,因为A才不管自己的代理是谁,只要代理能在A需要的时候能处理相应的事情就可以了。 也就是说,无论哪个类只要实现了A要求的方法就可以成为A的代理,那么protocol可以很好地解决这个问题。
因为protocol就是一系列方法的声明,所以只要遵守A的代理协议无论谁都可以成为A的代理。
@property(nonatomic,weak) id <delegate protocol> delegate //假设这是A的代理属性,从id可知道这个代理任意类的对象都可以充当,但前提是这个类需要遵守“delegate protocol”。也就是说遵守了“delegate protocol”的类都可以当A的代理,这样就解耦合了。
应该看到代理的实现原理了吧,也能看到代理方法调用的时机:当A的某个方法(找房子)被调用时,他的代理dog就会执行一定的方法。(注意代理方法何时被调用!)
0 0
- delegate 与 protocol
- IOS delegate与protocol
- day022 Delegate与Protocol
- protocol与delegate
- Protocol 协议 与 delegate 代理
- Protocol与Delegate 使用方法详解
- Protocol delegate
- ios委托delegate与协议protocol
- 关于delegate 与 protocol 的理解 iOS
- 协议与委托(Protocol and Delegate)
- 黑马IOS - OC protocol与Delegate 理解
- IOS Protocol与Delegate详解(一)
- IOS Protocol与Delegate详解(二)
- 关于delegate 与 protocol 的理解 iOS
- iOS中的协议(Protocol)与代理(Delegate)
- protocol与delegate,代理(委托)与协议总结
- 协议与委托(Protocol and Delegate)实例解析
- 【iOS开发】协议与委托 (Protocol and Delegate) 实例解析
- 最新版SDWebImage的使用
- 支付宝投诉人工QQ号码是
- leetcode笔记:Pascal's Triangle II
- URL中“#” “?” &“”号的作用
- dll问题
- protocol与delegate
- Android 读取目录中的文件列表并展示
- java面试笔记3
- node使用本地存储的方式可以使用多个data本地域
- Using Databases with Python -Musical Track Database (produce database from XML file)
- python 中的yield
- Hashmap原理
- QT 编译 undefined reference to `vtable for Class
- 聚合函数与分组