只能一对一创建使用
一.代理协议解决对象间通信的关键:判断谁是代理对象,谁是被代理对象。
判断方法:
(1)谁产生事件,谁就是被代理对象;
(2)谁响应事件,谁就是代理对象。
例如:小孩饿了,需要母亲喂饭。饿了要吃饭这一事件是小孩产生的,母亲收到通知后去喂饭,是响应者,所以小孩是被代理对象,母亲是代理对象。
二.使用方法
1.在被代理对象.h文件中申明代理,创建代理方法
// 照顾小孩的协议
@protocol BabyDelegate
//创建代理方法
- (void)washBaby:(Baby *)baby;
- (void)babyEat:(Baby *)baby;
@end
2.在被代理对象中.h文件中创建代理对象
@property (nonatomic, weak) id delegate;
3.在被代理对象的.m文件中实现代理方法
if ([self.delegate respondsToSelector:@selector(washBaby:)]&&[self.delegate respondsToSelector:@selector(babyEat:)]) {
[self.delegate washBaby:self];
[self.delegate babyEat:self];
}
4.在代理对象中签订代理协议,并在.m文件中设置代理对象
@interface Mother : NSObject
mom.delegate = self;
5.在代理对象中实现代理方法
- (void)washBaby:(Baby *)baby{
NSLog(@"母亲给孩子洗澡");
}
- (void)babyEat:(Baby *)baby{
NSLog(@"母亲给孩子喂饭");
}
网友评论