对ios中Delegate的理解

本文通过一个生动的例子介绍了iOS开发中的委托模式。详细解释了如何通过定义协议并在一个类中实现这些协议来完成委托过程。

最近刚接触协议@protocol 和委托 delegate 弄得一头雾水  通过这几天的学习有了一定的了解   :

首先 协议protocol 和委托delegate 是两个完全不同的概念  放在一起说 是因为我们总是在同一个头文件里看到它们;

首先解释一下什么是委托 :举个例子 ,我工作的时候给你打电话,让你帮我查某人的电话号码,把事情交给你后,我继续工作 过了几分钟 你打电话回来告诉我 查到的结果。。。@end     那么你就是我的委托对象,当你完成事件后 返回给我一个值;这就是委托。也就是   :我.delegete = 你;

Delegate本身应该称为一种设计模式。

是把一个类自己需要做的一部分事情,让另一个类(也可以就是自己本身)来完成。

比如

设定一个协议方法:delegateMethod
@protocol MyDelegate  
      
    -(void)delegateMethod;  
      
    @end

在A类中实现该协议并实现方法:

@interface  A : UIViewController <MyDelegate>  
      
    @implementation A  
    -(void)delegateMethod  
    {  
         NSLog(@"delegateMethod");  
    }

在B中定义delegate指针;

@interface  B : UIViewController  
    {  
        id delegate;  
    }  
    @property(nonatomic,retain) id delegate;  
   @end  
      
    @implementation B   
    @synthesize delegate;


A到B的过程中给delegate指名代理

B.delegate = self;

B中调用代理方法;

[delegate delegateMethod];

这就是B去委托A实现delegateMethod方法;

其实delegate只是一种模式,大家约定俗成,当把自己内部一部分实现暴露给另外一个类去做的时候,就叫实际做事的类为delegate,当然你也可你把它命名为任何名字;   

这只是我的个人理解,希望可以给刚涉及这方面的同学一点点启示, 不妥的地方请批评指正~~~~


转载于:https://my.oschina.net/u/591005/blog/71895

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值