黑马程序员-----代理模式

一、代理的使用场合

1、使用代理的第一步就是确定,谁是谁的代理,也是注重要的,请代理的人拥有一个代理属性id<XXX>delegate,只要在需要的时候去调用代理属性deleagate的某些方法即可完成某些行为

2、几个代理的使用场合

1>对象B要监听对象A的行为,此时的对象B是对象A的代理

2>对象A发生某些行为,通知对象B,此时B是A的代理

3>对象A无法完成某些行为,需要对象B去帮忙处理,此时对象B是对象A的代理

二、代理三部曲

1、请代理三部曲

1>定义协议protocol

在m文件当中定义代理需要遵守的协议,通常代理名称是自己的类名+Delegate,注意添加@optional

eg:Person请代理

@protocol PersonDelegate <NSObject>

@optional

方法列表

注意:方法名通常一类名开头并且一定将请代理的对象自己(谁请代理)作为参数传进去

代理方法的命名:代理名称 + 功能 + 请代理的对象自己(没有活着只有一个其他参数)

代理名称 + 请代理的对象自己 + 其他参数(有多个其他参数)

@end

2>组合一个id类型的变量名为delegate变量到类中

eg:

@property (nonatomic, weak) id<PersonDelegate> deleagate;

3>在自己发生某些事件,需要代理去处理的时候,在自己发生事件的方法里面调用代理的对应的代理方法,但是在调用代理方法的时候必须调用[self.delegate repondsToSelector:],查看代理方法是否被实现

2、做代理三部曲

1>遵守协议

eg:

@interface XXX : NSObject  () <PersonDelegate>

@end

2>实现代理当中的方法,(等待请代理的人来调用),在代理方法中实现请代理的人要求代理做的事情

3>设置请代理的对象的id类型的delegate为自己

三、Xcode当中最标准的代理模式,就是UIScrollView,可以参照



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值