代理模式:就是有一些方法要实现,但是又不知道由谁来实现,就先创建一个delegate属性,然后需要实现的时候把delegate赋值成需要实现的对象即可。
一.代理传值
3组文件:
协议:httpServiceDelegate.h
协议方法:- (void)sayHello:(NSString *)name;
委托者:
httpServiceManager.h
httpServiceManager.m
委托者需要在头文件声明一个id<httpServieProtocol>delegate属性,在实现文件里用该属性调用协议里的方法:
NSString * name = @"老猫";
[self.delegate sayHello:name];
代理者:
mainViewController.h
mainViewController.m
代理者头文件要实现协议:
@interface mainViewController :UIViewController<httpServiceDelegate>
代理者实现文件实现协议方法:
- (void)sayHello:(NSString *)name {
NSLog(@"%@说Hello",name);
}
二.实现系统方法