标签:
//main.m
//
// main.m
// 回调
//
// Created by hehe on 15/9/10.
// Copyright (c) 2015年 wang.hehe. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Employee.h"
#import "Company.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建出公司对象
Company *company = [[Company alloc] init];
//创建员工对象
Employee *emp = [[Employee alloc]init];
//设定代理关系
company.emp = emp;
//动员
[company doWork];
}
return 0;
}
//Employee.h
/*当商品销售完这个条件满足时候,就需要调用block,它对应的代码
在委托方设定实现回调*/
#import <Foundation/Foundation.h>
@interface Employee : NSObject
//有一个block类型的属性,通过它实现回调
//block设置为属性要求他的内存是copy
@property (nonatomic,copy)void (^block)();
- (void)sellProduct;
@end
//Employee.m
//
// Employee.m
// 回调
//
// Created by hehe on 15/9/10.
// Copyright (c) 2015年 wang.hehe. All rights reserved.
//
#import "Employee.h"
@implementation Employee
- (void)sellProduct
{
NSLog(@"销售商品");
//当员工销售完商品,需要反馈告诉公司
//回调
self.block();
}
@end
//Company.h
/*
公司
委托方
*/
#import <Foundation/Foundation.h>
#import "Employee.h"
@interface Company : NSObject
//设定代理方的属性
@property (nonatomic,strong) Employee *emp;
//动员员工销售的方法
- (void)doWork;
@end
//Company.m
//
// Company.m
// 回调
//
// Created by hehe on 15/9/10.
// Copyright (c) 2015年 wang.hehe. All rights reserved.
//
#import "Company.h"
@implementation Company
- (void)doWork
{
//设定回调的代码
//..就是一个声明..//
self.emp.block = ^(){
NSLog(@"我已经完成了销售任务");
};
//委托代理方(员工去销售)
[self.emp sellProduct];
}
@end
标签:
原文地址:http://www.cnblogs.com/wanghengheng/p/4798946.html