黑马IOS - OC protocol与Delegate 理解
来源:互联网 发布:网上怎样开淘宝店 编辑:程序博客网 时间:2024/05/22 01:47
我们常说代理协议(Delegate protocol) 其实代理与协议是两个完全不同的概念,放在一起说,是因为我梦经常在同一个文件中看到。
Protocol:
定义protocol如下:
@interface ClassADelegate - (void)method1;- (void)method2;......@end
就是定义了一组方法,这一组方法放在一起就是一个protocol, 也就是协议。
协议方法都是要被遵循的。所以在ClassB.h中有:
@interface ClassB <ClassADelegate>@end
就是说ClassB遵循这个协议。
并且在ClassB.m中实现这个方法:
@implementation ClassB- (void)method1{}- (void)method2{}@end
这样类B遵循协议,就可以放心的实现和调用这个协议中的所有方法了。
ClassB * cb = [[ClassB alloc] init];[cb method1];[cb method2];
这就是协议的具体用法。
Delegate
那么Dalegate又是什么呢? 其实Delegate和Protocol没有关系,他应该称作是一种设计模式。
他是将一个类要做的一件事,委托(代理)另一个类(也可以是他本身)来完成。
比如上面的例子中我在定义一个ClassC:
<pre class="objc" name="code">@interface ClassCid agent;
// 其是也可以这样写: ClassB* agent;
// 这样写更加直观: ClassB* classB;
@property (nonatomic, strong) id<ClassADelegate> agent;@end
我们知道agent是一个ClassB, 他提供了所有ClassB的方法,这样我们就可以把一部分ClassC的工作放到ClassB中去实现
这就是代理。
【转】http://blog.langyufei.com/?p=273
0 0
- 黑马IOS - OC protocol与Delegate 理解
- 关于delegate 与 protocol 的理解 iOS
- 关于delegate 与 protocol 的理解 iOS
- IOS delegate与protocol
- (转载)关于delegate 与 protocol 的理解 iOS
- OC学习 - Protocol delegate
- ios委托delegate与协议protocol
- IOS Protocol与Delegate详解(一)
- IOS Protocol与Delegate详解(二)
- iOS中的协议(Protocol)与代理(Delegate)
- 黑马程序员--oc:block与protocol
- OC的delegate和protocol
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- [iOS]delegate和protocol
- 名词解释备忘录
- 缺省的servlet
- 深入理解PHP内存管理
- Magento后台订单页面增加邮箱项
- 我还是愿意尊它为龙书
- 黑马IOS - OC protocol与Delegate 理解
- Spring MVC 环境搭建
- 配置iis支持.json格式的文件
- 数位统计
- IOS开发--循环引用问题,普通控件为什么用weak,代理为什么用weak,block内用到外面的东西要用__weak
- ANT(2) Eclipse中使用ANT
- Cocos2d-x3.5 _ 示例工程分析
- 第八周 项目一 实现复数类中的运算符重载(1)
- 游承超:钢化膜在行业中已经取得了一定的地位(10P)