iOS代理设计模式入门笔记

只能一对一创建使用

一.代理协议解决对象间通信的关键:判断谁是代理对象,谁是被代理对象。

判断方法:

(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(@"母亲给孩子喂饭");

}

你可能感兴趣的:(iOS代理设计模式入门笔记)