block的动态传值例子
/*
写一个block传值 ,让两个数进行相除和相乘,在运行时动态决定采用哪种计算方式
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
typedef int(^MathBlock)(int,int);
MathBlock sumblock = ^(int a,int b){
return a+b;
};
MathBlock delblock = ^(int a,int b){
return a-b;
};
typedef void (^Myblock)(MathBlock,int,int);
//int(^MathBlock)(int,int) 是MathBlock的形式参数 *****int*********
Myblock block= ^(int(^MathBlock)(int,int),int a,int b)
{
NSLog(@"%d",MathBlock(a,b));
};
block(sumblock,1,2);
block(delblock,2,1);
}
// void (^block)(char,int,int)=^(char a ,int b,int c){
// if(a=='+')
// {
// NSLog(@"%d",b+c);
// }
// if(a=='-')
// {
// NSLog(@"%d",b-c);
// }
// };
// //+
// block('+',2,4);
// //-
// block('-',4,2);
// void (^block)(int(^MathBlock)(int,int),int,int) = ^(int(^MathBlock)(int,int),int a,int b)
// {
// NSLog(@"%d",MathBlock(a,b));
// };
// block(sumblock,1,2);
// block(delblock,2,1);
return 0;
}
block的动态传值例子的更多相关文章
- iOS Block界面反向传值
在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...
- jdk动态代理与cglib动态代理例子
1.JAVA的动态代理特征:特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象 ...
- vue父组件向子组件动态传值的两种方法
在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片,因为有时候获取到的会是空 ...
- 记录--关于Jquery uploadify 不能动态传值的问题(java)
动态传值纠结多时后无效, 后得下面一番代码,依旧无效~~ 纳了几个闷,心灰意冷下 清理了 tomcat 一次 再出运行 可以了 真心纠结很久很久 无奈之下还是得 清理清理tomcat: ...
- Vue 动态传值,Get传值
Vue 路由get传值1.动态传值 1.1需要在路由配置时指定参数: {component:'/home/:id'} 1.2在routerlink中指定格式:<router-link :to=& ...
- iOS 使用Block进行逆传值
跟通知一样也是两个控制器,然后代码创建控件直接上代码 #import "ViewController.h" #import "TwoViewController.h&qu ...
- block做方法参数时--block的参数传值过程 例1
说明:此例子中方法的调用在此文中是从下到上调用的.(即: 方法五调用方法四: 方法四调用方法三) 方法一:- (void)setCompletionBlockWithSuccess: ...
- JDK动态代理例子
JDK动态代理的代理类必须实现于接口.如果要代理类,则使用CGLIB代理. 先定义一个接口: public interface Character { public void show(); } 接着 ...
- Java 静态代理和动态代理例子
代理Proxy: Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委 ...
随机推荐
- Codeforces Round #280 (Div. 2) C. Vanya and Exams 贪心
C. Vanya and Exams Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/492/pr ...
- POJ 3281 Dining 网络流最大流
B - DiningTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.ac ...
- web.xml里<filter-mapping>中的<dispatcher>作用
2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个< ...
- Sublime Text 备忘
Sublime Text已经被传成编程利器,那当然也是我们前端的利器了,刚开始用的时候,很多小问题,所以做个备忘,忘记的时候也可以翻出来看看,下次重装的时候可以用到. 1.设置自动换行 菜单栏 Vie ...
- delphi 立即显示提示
procedure TForm1.FormCreate(Sender: TObject); begin Application.HintPause:=0;//立即显示 Application.hi ...
- C/C++程序猿必须熟练应用的开源项目
作为一个经验丰富的C/C++程序猿, 肯定亲手写过各种功能的代码, 比方封装过数据库訪问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件訪问的类, 封装过UI界面库等, 也在实际的项目中应 ...
- 判断IE中iframe完美加载完毕的方法
转: var iframe = document.createElement("iframe"); iframe.src = "http://www.planabc.ne ...
- LINUX 文件系统如何存储文件 图解
http://zhuqiuxu.iteye.com/blog/2116023 http://zhuqiuxu.iteye.com/blog/2116168 理解Inode要从文件说起,文件存储在硬盘上 ...
- C#_自动测试2_连连看外挂
GUI自动化测试和做外挂的原理很相似,都是模拟用户的鼠标和键盘操作, 给自己的程序写自动化就是做测试,给别人的程序写自动化就是外挂了. 本文使用的技术也同样适用制作“对对碰”,"找茬&quo ...
- C#_在.net中序列化读写xml方法的总结
阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...