协议与委托

今天晚上才终于弄明白了协议,委托。 实际上协议和委托是分不开的。有协议就必须有委托。自己写好了协议(相当于接口),委托谁去实现呢。所以就必须有一个类去实现他。 那么这个类就成为了 委托对象。

话说,我们为什么要弄一个协议出来呢。我说说我的见解吧。 类A自己需要完成一个具体功能,但是这个功能的一些零部件在B类里面,所以A类就写一个协议,里面写上几个方法。然后让B类实现协议,即在@interface XXX <协议名>,然后在B类里面指定这个协议的一个委托对象。即 a(A类的一个对象).delegate = self; self即指的是本类(B)。那么 接下来要做的事情就是,在B类中去实现这个协议里面的几个方法。 现在呢,这个功能已经在B类里面实现好了,那么A类现在就能直接用了。A类具体怎样调用这个协议里面的方法呢? 我们应在A.h里面写一个 该id<协议名>类型的实例 或者 @property(nonatomic,assign)   id <协议名>DDD;然后在去调用该协议中的方法。  我在这里插一句话,DDD 实际上指的是 实现该协议的类的对象。如果你听的有点儿糊涂,我给你换一句话,此属性用于指定实现该协议的对象。 需要理解的就是这么一点儿。下面写写协议具体的语法

声明协议:

@protocol 协议名

方法1;

方法2;

......

@end

举个例子:

@end

实现该协议

哪个类实现,就在那个类的@interface 类名 旁边的尖括号里面写上要实现的协议名。即<协议名>。

举个例子:

在该类里面如何指定委托对象呢,把声明协议的那个类,写一个对象。然后“.delegate” ,指定一个委托对象。

举个例子:

指定了委托对象后,在该类里面就要实现该协议里面的方法了。

举个例子:

 

在该类里面已经实现了功能,那么现在就要回到原来的那个类(即写协议的那个类)里面了,来实现协议方法。

怎样实现呢,前面已经说过了,

首先,需要声明一个id类型的实例变量或者声明一个属性,但是该id类型的变量声明有些特殊,因为需要在id之后加上用尖括号括起来的该协议名,这个我们大家应该能想通。

举个例子:

声明一个实例变量:

 

 

 

声明一个属性:

需要在.m里面

其次,再调用该方法。

举个例子:

或者

最终,就大功告成了。相信大家看完之后有些累了,建议再重新看一遍。就会理解协议与委托。

本人学术浅薄,若有错误,请不惜赐教。

 

转载于:https://www.cnblogs.com/Camier-myNiuer/archive/2013/03/24/Camier.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值