iOS代理模式梳理
第一步:定义协议
@protocol ModelDelegate
-(void)letModelDoSomething:(NSString *)aString;
@end
第二步:设置代理属性来存储
@interface Model : NSObject
@property(nonatomic,strong)iddelegate;
第三步:为Model指定代理对象,并使代理类遵循既定协议
interface ViewController ()<ModelDelegate>//遵循既定协议
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
Model *m=[[Model alloc]init];
m.delegate=self;//指定代理对象
[m playDelegate];
// Do any additional setup after loading the view, typically from a nib.
}
第四步:代理类实现协议中的方法
-(void)letModelDoSomething:(NSString *)aString
{
NSLog(@"%@",aString);
}
第五步:委托方通知代理来执行任务.
-(void)playDelegate
{
[_delegate letModelDoSomething:@"FSFDOIEHRGFEIORFH"];
}
第六步:调用委托方的通知方法,可以使timer时间,可以使触摸事件,也可以通过代理方里实例化的对象来调用
Model *m=[[Model alloc]init];
m.delegate=self;
[m playDelegate];
完整代码:delegate