第一步:定義協(xié)議
@protocol ModelDelegate
-(void)letModelDoSomething:(NSString *)aString;
@end
第二步:設(shè)置代理屬性來存儲
@interface Model : NSObject
@property(nonatomic,strong)iddelegate;
第三步:為Model指定代理對象,并使代理類遵循既定協(xié)議
interface ViewController ()<ModelDelegate>//遵循既定協(xié)議
@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.
}
第四步:代理類實(shí)現(xiàn)協(xié)議中的方法
-(void)letModelDoSomething:(NSString *)aString
{
NSLog(@"%@",aString);
}
第五步:委托方通知代理來執(zhí)行任務(wù).
-(void)playDelegate
{
[_delegate letModelDoSomething:@"FSFDOIEHRGFEIORFH"];
}
第六步:調(diào)用委托方的通知方法,可以使timer時(shí)間,可以使觸摸事件,也可以通過代理方里實(shí)例化的對象來調(diào)用
Model *m=[[Model alloc]init];
m.delegate=self;
[m playDelegate];
完整代碼:delegate?