Object-C的协议(protocol)学习小结

本文深入探讨了iOS开发中代理机制的应用,详细解释了代理、委托人的概念,并通过实例展示了如何实现和使用代理方法,以及如何创建并调用代理协议。


最近学习协议的时候被各种遵守协议、实现协议方法等等搞得有点乱,所以把有关协议的东西整理小结如下:


1,A是B的代理,B是A的委托(委托人),比如控制器成为某个view的代理;

2,共同的协议为<BDelegate> ;

3,B将相关数据传值给A,让A来完成操作;


一,对于A:1,遵守协议;2,成为代理;3,实现协议中的方法;

A.m 中

#import “B.h”

@interface A () <BDelegate>   // 1,遵守协议

@end


@implementation A

- XX

{

// 2,成为代理

B.delegate = self;

}

// 3,实现代理方法

- (void)b:(B *)b andData:(xx)data{


}

@end


二,对于B:1,创建协议(在协议中定义协议方法,注意@class B.h);  2,创建delegate属性;3,使用代理_delegate来传递值(即,调用代理方法);

B.h  中

@class B.h;

@protocol  BDelegate  <NSObject>

@required / @optional

- (void)b:(B *)b andData:(xx)data;

@end


@interface B : xx

@property (nonatomic, weak) id<BDelegate>  delegate;

@end


B.m 中

@implementation B

- XX{

// 若代理方法为@optonal,则要判断代理方法是否实现了

if( [_delegate  respondsToSelector:@selector(b:  andData:)] ){


// 3,调用代理方法,实现值传递

[_delegate  B:self andData:data];

}

}


三,整个过程就像制造一个只要放入定制规格的炮弹就能开炮的炮弹装置

首先,A从B处拿到制造该炮弹的代理权,声明严格遵守协议规定的炮弹规格来制造相应的炮弹装置;

其次,A开始根据协议制造炮弹装置,把炮弹装置造好,等到B装弹开炮;

然后,B开始使用(调用)A造好的炮弹,将事先商量好的规格炮弹上膛;

最后,上好膛的炮弹装置,放炮!








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值