标签:
/*
写一个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;
}
标签:
原文地址:http://www.cnblogs.com/wanghengheng/p/4800904.html