block回调具体例子
//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
block回调具体例子的更多相关文章
- 代码块(Block)回调一般阐述
本章教程主要对代码块回调模式进行讲解,已经分析其他回调的各种优缺点和适合的使用场景. 代码块机制 Block变量类型 Block代码封装及调用 Block变量对普通变量作用域的影响 Block回调接口 ...
- NSTimer_Block封装定时器的target-action成Block回调
前言 定时器NSTimer虽然简单易用,但是目标响应机制(target-action)这种方式很容易在代码中出现代码臃肿的情况,特别是在一个文件中有大量的代码,多个定时器的时候不方便调试,因此将NST ...
- iOS 键盘添加完成按钮,delegate和block回调
这个是一个比较初级一点的文章,新人可以看看.当然实现这个需求的时候自己也有一点收获,记下来吧. 前两天产品要求在工程的所有数字键盘弹出时,上面带一个小帽子,上面安装一个“完成”按钮,这个完成按钮也没有 ...
- Objective-C中的Block回调模式
在前面的博客中提到了Block的概念和使用方法,个人感觉Block最爽的用法莫过于在回调时用block.感觉比委托回调和目标方法回调用着要顺手,好不好用还得读者亲自用一下才知道.如果 读者之前用过SS ...
- Block回调
•Block的定义 •Block.委托.通知.回调函数,它们虽然名字不一样,但是原理都一样,都是"回调机制"的思想的具体实现 •前面的代理模式的项目改为Block回调实现 ...
- UIAlertController——之Block回调
iOS8.0之后出现的提示框 =.=,比自己去改block回调要好.
- 第十篇、自定义UIBarButtonItem和UIButton block回调
// 自定义导航栏左边按钮 self.navigationItem.leftBarButtonItem = [JQBlockedBarButtonItem blockedBarButtonItemWi ...
- iOS很重要的 block回调
刚刚进入ios开发行业,发现开发中要用到大量的block回调,由此可见它的重要性.学习它之前我也是网上找的资料,推荐这篇文章http://blog.csdn.net/mobanchengshuang/ ...
- 63.delegate回调 和block回调
效果:viewController里面放置一个按钮和Lab,点击按钮进入oneViewController(delegate回调)或者BlockViewController(block回调),两者控制 ...
随机推荐
- 教你50招提升ASP.NET性能(十九):静态集合
(30)Static collections 招数30: 静态集合 If a collection is static, make sure it only contains the objects ...
- 瑞丽的SQL-基于窗体的排名计算
在SQL Server中,窗体被定义为用户指定的一组行. 之所以要提出窗体这个概念,由于这种基于窗体或分区的又一次计算在实际工作应用范围比較广泛.比如.假设我们要对每一个班级中的学生按成绩进行排序,在 ...
- Codeforces Round #334 (Div. 2) D. Moodular Arithmetic 环的个数
D. Moodular Arithmetic Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/60 ...
- C#操作MySQL数据库-----HelloWorld
这里采用在visual studio 2010中通过MySql.Data.dll.MySql.Web.dll来连接mysql数据库, 之后便进行数据的插入和查询. Program.cs文件内容如下: ...
- 2013年中国区Skyline软件价格体系
< 2013年中国区Skyline软件价格体系 序号 产品名称 描述 市场报价 1 TerraExplorer Pro 5.1 对 ...
- js获取网络图片的宽和高
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Logistic回归总结
原文:http://blog.csdn.net/dongtingzhizi/article/details/15962797 Logistic回归总结 作者:洞庭之子 微博:洞庭之子-Bing (2 ...
- C#_ajax fileupload
@{ ViewBag.Title = "Index"; Layout = null; } <h2>Index</h2> <script src=&qu ...
- 无限滚动 --demo
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- VMware系统运维(三 )SQL Server 2008 R2安装
1. 点击"全新SQL Server 独立安装或向现有安装添加功能" 2.验证通过,点击确定. 3.输入数据库密钥,必须支持正版,不然微软打你屁屁,嘻嘻 4.不接受不让你过,所以不 ...